资源描述:
《基于TCP的字符聊天VC++程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、服务器端:#include#include"stdio.h"voidmain(){WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1
2、
3、HIBYTE(wsaData.wVersion)!=1){WS
4、ACleanup();return;}//上面代码为与操作系统协调要使用的winsocket版本SOCKETapaserver=socket(AF_INET,SOCK_STREAM,0);//创建了一个服务器端的套接字sockaddr_inapaaddr;apaaddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//inet_addr("192.168.0.10");apaaddr.sin_family=AF_INET;apaaddr.sin_port=htons(6
5、000);//apaaddr.sin_zero=bind(apaserver,(sockaddr*)&apaaddr,sizeof(sockaddr));//将套接字与IP地址和端口绑定listen(apaserver,5);//设置套接字为监听模式sockaddr_inapaclient;intn=sizeof(sockaddr);charm[100];charj[100];charbuff[200];SOCKETapaconnect=accept(apaserver,(sockaddr*)&apac
6、lient,&n);//建立“连接套接字”while(1){chartone[100];intt;t=recv(apaconnect,j,100,0);//从客户端接收到的字符存入b缓冲区**************if(t==SOCKET_ERROR){printf("对方结束了本次通话");break;}printf("客户端发来信息:");printf("%s",j);//在屏幕上显示了客户端所说的话printf("服务器请讲话:");gets(tone);///////服务器端的发送
7、功能send(apaconnect,tone,strlen(tone)+1,0);///////////printf("服务器端完成一次运行");}closesocket(apaconnect);WSACleanup();}客户端:#include#include"stdio.h"#includevoidmain(){//////////////////////////////////////////////WORDwVersionRequested;WS
8、ADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1
9、
10、HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;}SOCKETuser=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_INQQ;QQ.
11、sin_addr.S_un.S_addr=inet_addr("127.0.0.1");QQ.sin_family=AF_INET;QQ.sin_port=htons(6000);connect(user,(SOCKADDR*)&QQ,sizeof(SOCKADDR));charc[100];charstr[100];charb[100];while(1){intt;printf("请输入你要说的话:");gets(str);send(user,str,strlen(str)+1,0);t=recv(u
12、ser,b,100,0);//从客户端接收到的字符存入b缓冲区**************///////////客户端的接收功能if(t==SOCKET_ERROR)////////////////{printf("对方结束了本次通话");break;}printf("服务端发来信息:");printf("%s",b);//***************printf("客户端完成一次运行");}/////////////////