Socket两台主机通信

Socket两台主机通信

ID:37712824

大小:249.50 KB

页数:10页

时间:2019-05-29

Socket两台主机通信_第1页
Socket两台主机通信_第2页
Socket两台主机通信_第3页
Socket两台主机通信_第4页
Socket两台主机通信_第5页
资源描述:

《Socket两台主机通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一WINSOCKET编程一、实验目的通过使用SocketAPI,加深对TCP和UDPSocket的认识。二、实验要求两位同学一组,共同完成服务器与客户端程序编写。甲同学通过tcp连接到乙同学服务器(ip:*.*.*.*,端口号:8888)。甲发送自己的学号和姓名到乙服务器,乙服务器返回一个自己的学号和姓名给甲。然后甲通过UDP提交获取到的学号和姓名给乙,如果乙收到正确的信息,则返回的信息为:恭喜,实验成功!!若收到信息不对,则返回的信息为:错误认证,实验没有成功!三、实验步骤1.甲同学通过TCP连接乙同学服务器ip:*.*.*.*端口号:88882.使用TCP发送自己的学号

2、和姓名到服务器(姓名用汉语拼音)。3.乙同学TCP服务器返回一个自己的学号和姓名给甲,客户端可以使用如下方法来获取。/*********************************************#define_MagicNumberT0xFFFE3141//tcp标识#define_MagicNumberU0xFFEF3141//udp标识#define_ID_Len32#define_NAME_Len256typedefstructPacket{DWORDmagicnum;unsignedcharID[_ID_Len];//学号unsignedcharName[

3、_NAME_Len];//姓名}package;packagerecvBuffer;send(TCPSocket,(char*)&sendBuffer,sizeof(_A1_Packet),0);//发送TCP请求包recv(TCPSocket,(char*)&recvBuffer,sizeof(_A1_Packet),0);//接收TCP服务器端的回应puts((char*)recvBuffer.PostData);***************************************************/4.甲通过UDP连接服务器乙,将上面接收到的学号和姓名,发

4、送给UDP服务器乙。使用sendto()发送到服务器使用recvfrom()等待服务器的返回信息5.UDP服务器的返回信息存放在PostData[]中。客服端通过如下方法来查看UDP服务器返回的信息:puts((char*)recvBuffer.PostData);若两次学号与姓名一样,则返回的信息为:恭喜,实验成功!!若两次学号与姓名不一样,则返回的信息为:两次字符串不一样,实验没有成功!实验截图:首先开启服务器端:再开启客户端:服务器端显示:源代码:客户端代码:Client.cpp#include#include#include

5、io.h>#include#define_MagicNumberT0xFFFE3141//TCP数据包头部标识符#define_MagicNumberU0xFFEF3141//UDP数据包头部标识符#define_SNDID_Len32//学号长度#define_PostData_Len256//最大数据长度#pragmacomment(lib,"ws2_32.lib")#pragmacomment(linker,"/subsystem:console")typedefstruct{DWORDmagicnum;charSNSID[_SNDID_Len];

6、//学号字段,长度32charPostData[_PostData_Len];//数据字段,长度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、//创建TCP套接字//设置Server端IP和端口:(TCP/UDP相同)if(TCPSocket==INVALID_SOCKET){printf("创建套接字失败");closesocket(TCPSocket);WSACleanup();return;}//绑socketSOCKADDR_INserver;server.sin_family=AF_INET;server.sin_port=htons(8888);server.sin_addr.s_addr=inet_addr("1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。