資源描述:
《基于TCP的字符聊天VC++程序.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、服務(wù)器端:#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;}//上面代碼為與操作系統(tǒng)協(xié)調(diào)要使用的winsocket版本SOCKETapaserver=socket(AF_INET,SOCK_STREAM,0);//創(chuàng)建了一個(gè)服務(wù)器端的套接字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);//設(shè)置套接字為監(jiān)聽模式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緩沖區(qū)**************if(t==SOCKET_ERROR){printf("對方結(jié)束了本次通話");break;}printf("客戶端發(fā)來信息:");printf("%s",j);//在屏幕上顯示了客戶端所說的話printf("服務(wù)器請講話:");gets(tone);///////服務(wù)器端的發(fā)送
7、功能send(apaconnect,tone,strlen(tone)+1,0);///////////printf("服務(wù)器端完成一次運(yùn)行");}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緩沖區(qū)**************///////////客戶端的接收功能if(t==SOCKET_ERROR)////////////////{printf("對方結(jié)束了本次通話");break;}printf("服務(wù)端發(fā)來信息:");printf("%s",b);//***************printf("客戶端完成一次運(yùn)行");}/////////////////