Socket兩臺(tái)主機(jī)通信

Socket兩臺(tái)主機(jī)通信

ID:37712824

大?。?49.50 KB

頁數(shù):10頁

時(shí)間:2019-05-29

Socket兩臺(tái)主機(jī)通信_(tái)第1頁
Socket兩臺(tái)主機(jī)通信_(tái)第2頁
Socket兩臺(tái)主機(jī)通信_(tái)第3頁
Socket兩臺(tái)主機(jī)通信_(tái)第4頁
Socket兩臺(tái)主機(jī)通信_(tái)第5頁
資源描述:

《Socket兩臺(tái)主機(jī)通信》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、實(shí)驗(yàn)一WINSOCKET編程一、實(shí)驗(yàn)?zāi)康耐ㄟ^使用SocketAPI,加深對(duì)TCP和UDPSocket的認(rèn)識(shí)。二、實(shí)驗(yàn)要求兩位同學(xué)一組,共同完成服務(wù)器與客戶端程序編寫。甲同學(xué)通過tcp連接到乙同學(xué)服務(wù)器(ip:*.*.*.*,端口號(hào):8888)。甲發(fā)送自己的學(xué)號(hào)和姓名到乙服務(wù)器,乙服務(wù)器返回一個(gè)自己的學(xué)號(hào)和姓名給甲。然后甲通過UDP提交獲取到的學(xué)號(hào)和姓名給乙,如果乙收到正確的信息,則返回的信息為:恭喜,實(shí)驗(yàn)成功!!若收到信息不對(duì),則返回的信息為:錯(cuò)誤認(rèn)證,實(shí)驗(yàn)沒有成功!三、實(shí)驗(yàn)步驟1.甲同學(xué)通過TCP連接乙同學(xué)服務(wù)器ip:*.*.*.*端口號(hào):88882.使用TCP發(fā)送自己的學(xué)號(hào)

2、和姓名到服務(wù)器(姓名用漢語拼音)。3.乙同學(xué)TCP服務(wù)器返回一個(gè)自己的學(xué)號(hào)和姓名給甲,客戶端可以使用如下方法來獲取。/*********************************************#define_MagicNumberT0xFFFE3141//tcp標(biāo)識(shí)#define_MagicNumberU0xFFEF3141//udp標(biāo)識(shí)#define_ID_Len32#define_NAME_Len256typedefstructPacket{DWORDmagicnum;unsignedcharID[_ID_Len];//學(xué)號(hào)unsignedcharName[

3、_NAME_Len];//姓名}package;packagerecvBuffer;send(TCPSocket,(char*)&sendBuffer,sizeof(_A1_Packet),0);//發(fā)送TCP請(qǐng)求包recv(TCPSocket,(char*)&recvBuffer,sizeof(_A1_Packet),0);//接收TCP服務(wù)器端的回應(yīng)puts((char*)recvBuffer.PostData);***************************************************/4.甲通過UDP連接服務(wù)器乙,將上面接收到的學(xué)號(hào)和姓名,發(fā)

4、送給UDP服務(wù)器乙。使用sendto()發(fā)送到服務(wù)器使用recvfrom()等待服務(wù)器的返回信息5.UDP服務(wù)器的返回信息存放在PostData[]中。客服端通過如下方法來查看UDP服務(wù)器返回的信息:puts((char*)recvBuffer.PostData);若兩次學(xué)號(hào)與姓名一樣,則返回的信息為:恭喜,實(shí)驗(yàn)成功??!若兩次學(xué)號(hào)與姓名不一樣,則返回的信息為:兩次字符串不一樣,實(shí)驗(yàn)沒有成功!實(shí)驗(yàn)截圖:首先開啟服務(wù)器端:再開啟客戶端:服務(wù)器端顯示:源代碼:客戶端代碼:Client.cpp#include#include#include

5、io.h>#include#define_MagicNumberT0xFFFE3141//TCP數(shù)據(jù)包頭部標(biāo)識(shí)符#define_MagicNumberU0xFFEF3141//UDP數(shù)據(jù)包頭部標(biāo)識(shí)符#define_SNDID_Len32//學(xué)號(hào)長度#define_PostData_Len256//最大數(shù)據(jù)長度#pragmacomment(lib,"ws2_32.lib")#pragmacomment(linker,"/subsystem:console")typedefstruct{DWORDmagicnum;charSNSID[_SNDID_Len];

6、//學(xué)號(hào)字段,長度32charPostData[_PostData_Len];//數(shù)據(jù)字段,長度256}_A1_Packet;voidmain(){//InitializeWinsock//初始化WSADATAwsaData;interrorCode;intiResult=WSAStartup(MAKEWORD(2,2),&wsaData);if(iResult!=0){printf("初始化套接字失敗");return;}//建立socketSOCKETTCPSocket;TCPSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

7、//創(chuàng)建TCP套接字//設(shè)置Server端IP和端口:(TCP/UDP相同)if(TCPSocket==INVALID_SOCKET){printf("創(chuàng)建套接字失敗");closesocket(TCPSocket);WSACleanup();return;}//綁socketSOCKADDR_INserver;server.sin_family=AF_INET;server.sin_port=htons(8888);server.sin_addr.s_addr=inet_addr("1

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。