问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何编写简单的socket网络程序 如何编写基于TCP协议的网络程序_百度知 ...

发布网友 发布时间:2022-05-05 17:31

我来回答

2个回答

热心网友 时间:2022-04-18 10:10

  下面是个人用了一个40分钟左右的时间编写的程序,在这编写过程中,非常重要的一点就是: 要理解 tcp协议编写程序的原理,即编写服务器端的过程,以及编写客户端的过程。 只要把握这两点就可以很容易编写出来了,但是要快速编写出这个程序,那么VC6.0开发工具里,最好要安装一个番茄插件,这个插件可以快速提高你的编写程序的效率,还有也要安装msdn 文档,这样在编写过程中,遇到对某个函数的参数想不全的时候,使用msdn就能快速帮你回忆了。 呵呵,如果你那一天去面试一家牛*的公司的哇,很有可能就是 在笔试完成之后,就要进行机试了,这就完全考查出你的真正编程水平了。 能在极短时间里完成一个socket网络程序,那么就可以令面试官感到非常满意了。 不过,这个程序,还没有连接数据库,以后再继续搞了。
  如果你去面试 深圳科技园 那家 伟易达 集团公司的软件工程师的哇,那么机试题目就是这个。 当时我去面试,首先进行笔试,面试官对我笔试成绩比较满意,所以就叫我留下来吃顿饭,下午进行机试。 当时我应聘岗位是Linux系统工程师C语言, 可是笔试题目,不但考核C,还考核C++,JavaScript,html。 我感觉好奇怪,心里想,好像我是应聘VC++开发那个岗位了。 于是我等到下午,他拿来机试题目之时,才真正明白,果然是他要安排我从事VC++开发了,题目就是:编写基于TCP/IP协议网络程序,并实现简单的聊天程序,而且要连接数据库。 当时我又失望了。 于是我就提出,我不想做这个题目,因为我是想应聘Linux系统C语言开发的。 就这样失望的走了。
  下面是个人完全能运行的代码:
  服务器端源码:
  #include<stdio.h>
#include <Winsock2.h>
#pragma comment (lib,"ws2_32.lib")
  int main()
{

WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return 0;
}

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return 0;
}
  SOCKET socketServer=socket(AF_INET,SOCK_STREAM,0);
  SOCKADDR_IN addrServer;
  addrServer.sin_family=AF_INET;
  addrServer.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
  addrServer.sin_port=htons(6000);
  bind(socketServer, (struct sockaddr *)&addrServer, sizeof(struct sockaddr));
  listen(socketServer, 5);
  SOCKADDR_IN addrClient;
  int addrLen=sizeof(SOCKADDR_IN);
  char sendBuf[100];
  char recvBuf[100];
  int i=1;
while(1)
{
printf("服务器端等待第%d个客户端连接请求...\n", i++);
  SOCKET newsocketServer=accept(socketServer,(struct sockaddr *)&addrClient, &addrLen);
  if(newsocketServer!=INVALID_SOCKET)
{
printf("服务器端与客户端连接成功...\n");
}
  memset(sendBuf,0,100);
  sprintf(sendBuf,"Welcome you to come here");
  send(newsocketServer, sendBuf, strlen(sendBuf)+1,0);
  memset(recvBuf,0,100);
  recv(newsocketServer,recvBuf,100,0);
  printf("服务器端收到信息:%s\n",recvBuf);
  closesocket(newsocketServer);
}
  WSACleanup();
  return 0;
}
  此文章来自于个人博客: 阿浪博客 http://blog.163.com/wenxianliang08@126/
  客户端源码:
  #include<stdio.h>
#include <Winsock2.h>
#pragma comment (lib,"ws2_32.lib")
  int main()
{

WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return 0;
}

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return 0;
}

SOCKET socketClient=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN addrServer;

addrServer.sin_family=AF_INET;

addrServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

addrServer.sin_port=htons(6000);

char sendBuf[100];

char recvBuf[100];
  printf("客户端向服务器端连接请求...\n");
  int Isconnect=connect(socketClient, (struct sockaddr *)&addrServer, sizeof(struct sockaddr));
  if(Isconnect!=0)
{
printf("客户端无法连接服务器端...\n");
  return 0;
}
  printf("客户端已成功连接服务器端...\n");
  memset(recvBuf,0,100);

recv(socketClient,recvBuf,100,0);
  printf("客户端收到信息:%s\n",recvBuf);
  memset(sendBuf,0,100);

sprintf(sendBuf,"Hello , I am Mr Wen !");

send(socketClient, sendBuf, strlen(sendBuf)+1,0);

closesocket(socketClient);

WSACleanup();

return 0;
}

热心网友 时间:2022-04-18 11:28

服务端:

客户端:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么牌子洗发水香味好闻持久 有哪些留香久的香氛洗发水值得入手? 香味持久的洗发水有哪些? 洗发水香味最持久排行 家装适合什么地板 客厅地板装修什么地板好 我家装修是北欧风格,想选一款与家里装修风格相匹配的地板,有何推荐? 什么样的装修用什么样的地板好 镇域 村镇 集体建设用地的区别 农村宅基地的升值之路:农民的生存保障还是财富陷阱? c#socket 怎么自定义协议 socket编程基于什么协议? 什么是德国早期浪漫主义 电子版 socket通信协议一般是怎么设计的 哪位大神有五尺天涯(2019)主演海莉·露·理查森、科尔·斯普罗斯、克莱尔·弗兰妮的高清视频在线观看 我可以说这克莱尔是史上最丑的克莱尔吗 死神来了2克莱尔·莱维斯是谁扮演的? 阅读《居里夫人传》《昆虫记》周国平的《妞妞》选一个写一段300字介绍词。 电影《帕克》里,帕克本来的女友克莱尔的扮演者是谁 纸牌屋第二季里面的杰奎琳夏普为什么支持性侵?为什么反对克莱尔? 关于姥鲨迷路的原因有哪些推测? 作文比赛那哪题目比较新颖? 羽绒服干洗剂能带上高铁吗? 关于比赛场数的题目 I AM怎么样 作文比赛,有什么新颖的题目 口算题目比赛? 如何评价《纸牌屋》中克莱尔与弗兰克的婚姻? 比赛数学题 电影中他假装是一个化学老师,会制*,最后确实一名*的这不电视剧叫啥? Socket 如何定义通讯协议 设计一个基于Socket结构的简易聊天程序。 计算机通信是通过协议实现的,socket是基于什么协议 socket通信是建立在tcp协议上吗 cs架构的socket协议怎样做参数化 socket用的什么协议 十二星座中白羊座的性格是什么样的呢?来看看你是否知道呢? 安全员A证、B证、C证有什么区别? 白羊座的性格是怎样的呢? A证和B证有什么区别 十二星座中,白羊座的人性格怎样?为什么说白羊座是“天煞孤星”呢? 奶粉喂养消化不良怎么解决 孩子近期有点消化不良该怎么办呀? 小米2怎么样才能清理文件管理里的其它文件,越来越大,我也没有装什么软件。 小米手机2没错占用率太大怎么办?会不会对手机造成损害? 为什么我的小米手机2什么都没开,运行内存就占用了800多M啊?怎么清理! 小米2手机我才下载40多个软件就不能再下了怎么回事 龙须谭旅游见闻作文100字 求一篇日记,(关于旅游见闻或一次劳动) 小米手机2一开机就被应用商店爆机,自动升级许多软件让空间已满,影响使用PS:应用商店自动更新已关,