資源描述:
《基于c和c的socket實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、Initsock.h文件//initsock.h文件#include#include#include#include#pragmacomment(lib,nWS2—32")//鏈接到WS2—32.libclassCInitSock{public:CInitSock(BYTEminorVer=2^BYTEmajorVer=2){//初始化WS2_32.dllWSADATAwsaData;WORDsockVersion=MAKEWORD(minorVerJmajorVer);if(:
2、:WSAStartup(sockVersion,SwsaData)!=0){exit(0);}}-CInitSock(){::WSACleanup();}};TCP版TCPClient.cpp文件////////////////////////////////////////////////////////////TCPClient.cpp文件/*《使用說(shuō)明》0.運(yùn)彳/稅序前請(qǐng)查看足否將initsock.h文件引入到項(xiàng)目屮。1.首先修改聊天對(duì)方的IP地址1.請(qǐng)首先運(yùn)行服務(wù)端(TCPServer)程序,再運(yùn)行客戶(hù)端(TCPClient)程序:如配咒正確服務(wù)端會(huì)
3、收到相關(guān)連接倍息。2.迮接成功后,耑耍由服務(wù)器端酋先發(fā)起會(huì)iS(輸入消息#?確認(rèn)發(fā)送),客戶(hù)端收到消息后才能輸入消息并確汄發(fā)送到服務(wù)器端。并且雙方每次只能發(fā)送一條消息。如想發(fā)送笫二條消息,盂要等待該方成功接受到另一方的消息后冰能繼續(xù)輸入消息。*/^include"InitSock.h"#include#includeCInitSockinitSock;//初始化Winsock庫(kù)intmain(){//創(chuàng)建套節(jié)字SOCKETs=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(S
4、==INVALID_SOCKET){printf("Failedsocket()");return0;}//也川以4:這屮.調(diào)川bind函數(shù)綁定一個(gè)木地地址//帝則系統(tǒng)將會(huì)ft動(dòng)安排//坡寫(xiě)遠(yuǎn)程地址倌息sockaddr_inservAddr;servAddr.sin_family=AF_INET;servAddr.sin_port=htons(4567);//注意,這甩要填1服務(wù)器程序(TCPServerW)所在機(jī)器的IP地址//如果你的計(jì)算機(jī)沒(méi)有聯(lián)網(wǎng),直接使用127.0.0.1即可servAddr.sin_addr.S_un.S_addr=inet_a
5、ddr("192.168.1.129");if(::connect(s,(sockaddr*)&servAddr,sizeof(servAddr))==-1){printf(HFailedconnect()");return0;}charbuff[256];charszText[256];while(TRUE){//從服務(wù)器端接收數(shù)裾intnRecv=::recv(s,buff256,0);if(nRecv>0){buff[nRecv]='0*;printfC?接收到數(shù)據(jù):%s",buff);}//向服務(wù)器端發(fā)送數(shù)ft!cin>>szText;szT
6、ext[255]=.