中易网

TCP客户端程序源代码如何编写?

答案:2  悬赏:80  
解决时间 2021-02-18 14:03
TCP客户端程序源代码如何编写?
最佳答案
int client() { system("color 0a"); //修改DOS窗口颜色,是其成0A。 WORD wVersion=MAKEWORd(1,1); WSADATA wsData; int nResult= WSAStartup(wVersion,&wsData); //启动WINSOCKET if(nResult !=0) { printf("启动Winsock失败!\n"); } SOCKET sc=socket(AF_INET,SOCK_STREAM,IPPROTO_IP); //创建套接字 if(sc==INVALID_SOCKET) { printf("创建套接字失败!\n"); } SOCKADDR_IN addrSc; addrSc.sin_family=AF_INET; addrSc.sin_port=htons(portNum); //保证字节顺序 char IP[20]; again: printf("请输入服务器的IP地址:"); gets(IP); if( -1==inet_addr(IP) ) //循环检测IP地址是否合法 { printf("IP地址错误!\n"); goto again; } addrSc.sin_addr.S_un.S_addr=inet_addr(IP); int b=0; while(b<5) //检测5次,如果服务器在此时间内启动,则进行连接 { nResult=connect(sc,(SOCKADDR*)&addrSc,sizeof(SOCKADDR)); //套接字连接 Sleep((DWORD)100); //延时1秒 if(nResult==SOCKET_ERROR) { printf(" %d 次连接失败!\n",b+1); } else break; b++; } if(nResult==SOCKET_ERROR) { printf("登陆超时,请重新登陆!\n"); goto again; } char *buf="连接成功!"; //向服务端验证连接成功 nResult=send(sc,buf,strlen(buf)+1,0); if(nResult==SOCKET_ERROR) { printf("5.套接字发送数据失败!\n"); return 0; } char mess[M]; nResult =recv(sc,mess,strlen(mess),0); //接受服务端的连接验证信息 if(nResult == -1 ) //判断服务端是否关闭 { printf("\n服务端已断开\n"); system("pause"); exit(0); } printf("%s\n",mess); tianle: system("cls"); //清屏 puts("\n\n"); puts(" * * "); puts(" * 欢·迎·使·用·局·域·网·文·件·发·送·工·具 *"); puts(" * (客 户 端) * "); puts(" * * "); puts(" * * "); puts(" * 请等待服务端的相应操作 * "); puts(" * * "); puts(" * * "); puts(" * 天乐软件工作室制作 * "); puts(" * 2008-3-1 * "); puts(" * 版权所有★欢迎传播 * "); puts("全屏(退出全屏)操作请按:ALT+ENTER\n"); char rMess[100]; nResult=recv(sc,rMess,strlen(rMess),0); //接收服务端发来的操作请求 if(nResult==-1) //判断服务端是否关闭 { printf("\n服务端已断开\n"); system("pause"); goto tianle; } printf("%s\n",rMess); char ch; char str[100]; gets(str); ch=str[0]; while( ch!='Y' && ch!='y' && ch!='N' && ch!='n' ) //处理客户端的错误输入 { printf("输入有误,请重新输入(Y/N):"); gets(str); ch=str[0]; } send(sc,&ch,sizeof(char),0); //向服务端反馈选择,并执行相应操作 if(strcmp(rMess,"服务端向你传送文件,是否接受(Y/N):")==0 && (ch=='Y' || ch=='y') ) { receiveFile(sc); } if(strcmp(rMess,"服务端向你发起聊天,是否接受(Y/N):")==0 && (ch=='Y' || ch=='y') ) { chatting_client(sc); } if(ch=='N' || ch=='n') { printf("你拒绝了!\n"); system("pause"); } system("cls"); goto tianle; nResult=closesocket(sc); //关闭套接字 if(nResult==SOCKET_ERROR) { printf("8.关闭套接字失败!\n"); return 0; } }

满意请采纳
全部回答
不明白啊 = =!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
26 33 57 97 26 41 53 65 9 89 是质数的: 是
第二年购买车险打多少折
百艺广告地址在什么地方,想过去办事
豪森酒店地址有知道的么?有点事想过去
不认识乐谱可以学葫芦丝吗
老款进口的本田CRV 02款的,车钥匙两把都丢了
奥特曼怎么生孩子?
u深度一键还原灵怎么用 映像文件路径该填什么
bigbang里的鼻音很好听的是哪个?
南门宾馆在什么地方啊,我要过去处理事情
请问这张照片是六小龄童和成龙什么时候拍的
有什么解决肝气郁结的好办法吗
为什么iPhone6s运行内存为2G iPhone6s plus却
标致雪铁龙2.0和2.3的哪个发动机好
we will rock you是哪能届奥运会的主题曲?
推荐资讯
怎样能不让花大姐往身上飞
我经常看别人发跟漏斗一样的QQ表情,接着会出
购建的固定资产计提折旧。计提折旧可以税前扣
英语选择,Statistics show that men have ()
简述信息化教学资源的应用带来课堂教学的变化
暖瓶不保暖怎么办~
弘扬小吃店在哪里啊,我有事要去这个地方
望江新丰苑停车场(出入口)在什么地方啊,我要
为什么油刹车下水不好用好
卡卡最近的消息以及以后的赛程.
走着走着就散了回忆都淡了 是徐志摩的哪一首
二零一三年到二零一九年有几个闰年
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?