资源描述:
《socket网络编程 实验报告new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、大连民族学院计算机科学与工程学院实验报告实验题目:socket编程综合实验课程名称:网络编程技术实验类型:□演示性□验证性□操作性□设计性■综合性专业:软件工程班级:2010-2姓名:杨腾飞学号:2010082225实验日期:2013年5月13日实验地点:多媒体机房(1)实验学时:4实验成绩:指导教师签字:2013年5月28日一实验目的与要求实验目的:认真阅读课程代码,并在通信功能之上设计和实现一个简单的聊天程序。实验内容:练习使用socket编写客户/服务程序,掌握socket的使用方法,熟悉并掌握多
2、线程的概念二总的设计思想及语言编程语言:C设计思想:让客户端与服务器建立链接即可通信,服务端建立套接字的大致步骤:1.建立socket。2。bind绑定特定的端口。3。listen监听特定的端口。4.accept,当有客户端连接服务器端口时,accept接收信息,并返回新的套接字描述符,提供给操作5.根据实际需求,write,read,send,recv等操作6.关闭套接字。客户端大致步骤:1.创建socket.2.根据服务器地址,connect连接到特定服务器。3.write,read等读写操作。4.
3、关闭套接字。三源程序/****************************服务器端*********************/#include#include#includevoid main(){WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);
4、if(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1
5、
6、HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;}SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_po
7、rt=htons(6000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));listen(sockSrv,6);char sendBuf[100];char recvBuf[100];char tempBuf[100];SOCKADDR_IN addrClient;int len=sizeof(SOCKADDR);while(1){printf("waiting for client");SOCKET sockConn=accept(sockS
8、rv,(SOCKADDR*)&addrClient,&len);recv(sockConn,tempBuf,100,0);if(tempBuf[0]!='q'){sprintf(recvBuf,"%s say: %s",inet_ntoa(addrClient.sin_addr),tempBuf);printf("%s",recvBuf);printf("please input your data,server:");gets(sendBuf);send(sockConn,sendBuf,st
9、rlen(sendBuf)+1,0);}else{printf("%s request to quit the chat platform",inet_ntoa(addrClient.sin_addr));send(sockConn,"q",strlen("q")+1,0);closesocket(sockConn);break;}}closesocket(sockSrv);WSACleanup();}/****************************客户端*******************
10、**/#include#include#include//#pragma comment(lib,"ws2_32.lib")void main(){WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaD