《计算机网络原理》试验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
学号XXXXXXXX姓名xxxxxxxxxxx专业班级XXXXXxxxxx完成时间2011-4-25实验二socket编程实验目的本次实验的目的是通过利用Socket编写简单的客户/服务器程序,了解TCP/IP网络的基本通信原理和编程方法,初步掌握TCP/IP网络的传输层上的编程接口(WindowsSocketsAPI),学会利用这些接口来编写简单的网络通信软件。实验内容利用socket编写简单的客户/服务器程序,比如聊天室、文件传输等。实验步骤思路分析将服务器与客户端分两部分实现,采用多线程实现多个客户端与服务器端连接客户端建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。服务器端通过创建一个Socket的Arraylist数组,与指定的本地端口绑定,就可以在端口进行侦听。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。代码实现初始化socketBOOLCChatDlg::InitiSocket(){m_socket=socket(AF_INET,SOCK_DGRAM,0);SOCKADDR_INaddSrv;addSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addSrv.sin_family=AF_INET;addSrv.sin_port=htons(6000);bind(m_socket,(SOCKADDR*)&addSrv,sizeof(SOCKADDR));returnTRUE;}DWORDWINAPICChatDlg::recvProc(LPVOIDlpParameter){SOCKETsock=((MYDATA*)lpParameter)->socket;HWNDhwnd=((MYDATA*)lpParameter)->hwnd;SOCKADDR_INaddFrom;intlen=sizeof(SOCKADDR);CHARrecvBuf[100];CHARtempBuf[100];while(TRUE){recvfrom(sock,recvBuf,200,0,(SOCKADDR*)&addFrom,&len);sprintf(tempBuf,"%ssay:%s",inet_ntoa(addFrom.sin_addr),recvBuf);::PostMessage(hwnd,WM_RECVMSG,0,(LPARAM)tempBuf);}return0;}接收消息VOIDCChatDlg::dealWithRecv(WPARAMwParam,LPARAMlParam){CStringstr=(CHAR*)lParam;CStringstrTemp;GetDlgItemText(IDC_EDIT_RECV,strTemp);str+="\r\n";str+=strTemp;SetDlgItemText(IDC_EDIT_RECV,str);}发送消息voidCChatDlg::OnButtonSend(){//TODO:AddyourcontrolnotificationhandlercodehereDWORDip;((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS))->GetAddress(ip);SOCKADDR_INaddSend;addSend.sin_addr.S_un.S_addr=htonl(ip);addSend.sin_family=AF_INET;addSend.sin_port=htons(6000);CStringstrSend;GetDlgItemText(IDC_EDIT_SEND,strSend);sendto(m_socket,strSend,100,0,(SOCKADDR*)&addSend,sizeof(SOCKADDR));SetDlgItemText(IDC_EDIT_SEND,"");}试验截图:实验结果实现了基本的点对点的聊天实验
心得
信息技术培训心得 下载关于七一讲话心得体会关于国企改革心得体会关于使用希沃白板的心得体会国培计划培训心得体会
对于编写socket的程序,现在我们要做的真的已经和简单了,就是调用几个封装好的库函数,但这库函数后面的实现我觉得才是值得我们好好学习的精髓。