基于tcp的客户端服务器程序代码

上传人:壹****1 文档编号:524033476 上传时间:2022-11-26 格式:DOC 页数:8 大小:103.50KB
返回 下载 相关 举报
基于tcp的客户端服务器程序代码_第1页
第1页 / 共8页
基于tcp的客户端服务器程序代码_第2页
第2页 / 共8页
基于tcp的客户端服务器程序代码_第3页
第3页 / 共8页
基于tcp的客户端服务器程序代码_第4页
第4页 / 共8页
基于tcp的客户端服务器程序代码_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于tcp的客户端服务器程序代码》由会员分享,可在线阅读,更多相关《基于tcp的客户端服务器程序代码(8页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学计算机网络与通信课程设计说明书服务器端程序 / TODO: Add extra initialization hereaddr.sin_family=AF_INET;/TCP IPv4 addr sin_port=htons(8090); /指定端口号,动态端口的范围从1024到65535,这里使用8090 addr.sin_addr.S_un.S_addr=INADDR_ANY; /*机器上可能有多块网卡,也就有多个IP地址, 如果指定为INADDR_ANY,那么系统将绑定默认的网卡即IP地址*/ s=:socket(AF_INET,SOCK_STREAM,0); /利用sock

2、et函数创建套接字 :bind(s,(sockaddr*)&addr,sizeof(addr);/调用bind函数把套接字s绑定到本地地址和指定端口号上 :listen(s,5); /s监听网络中的所有客户机:WSAAsyncSelect(s,this-m_hWnd,WM_SOCKET,FD_ACCEPT|FD_READ);/接收读和连接通知 GetDlgItem(IDC_TEXT)-EnableWindow(true); /激活编辑框显示 GetDlgItem(IDC_ADDR)-SetWindowText(服务器开始监听!);void CTCPDlg:OnSocket(WPARAM wPa

3、ram,LPARAM lParam) CString str; CString str13; CString str14; unsigned short int str15; char cs100=0;switch (lParam)/响应通知 case FD_ACCEPT: int lenth=sizeof(add1); s1=:accept(s,(sockaddr*)&add1,&lenth); /*s1为服务器和客户端通信的套接字 add1为客户端通信的套接字*/ n=n+1; str13.Format(有%d客户已经连接上了,n); /str13=有n客户已经连接上了 str13+=rn

4、; str13+=:inet_ntoa(add1.sin_addr); /ip地址转换成点分十进制的字符串 str13+=登陆; GetDlgItem(IDC_TEXT)-GetWindowText(str); str13+=rn; str+=str13; GetDlgItem(IDC_TEXT)-SetWindowText(str); /显示已经连接以及连接的客户端 str14=:inet_ntoa(add1.sin_addr); GetDlgItem(client_ip)-SetWindowText(str14); /显示客户端的ip str15=htons(add1.sin_port);

5、 SetDlgItemInt(client_port,str15,1); /显示客户端的port CString st; st=I am a server.; :send(s1,st.GetBuffer(1),strlen(st),0);break;case FD_READ: CString num=,num1=,num2=; :recv(s1,cs,100,0); /接收客户端的数据 for(int i=0;iGetWindowText(num1); num1+=rn; num+=num1; num+=(LPTSTR):inet_ntoa(add1.sin_addr); /LPTSTR与ch

6、ar*等价 num+=客户端:; num+=num2; GetDlgItem(IDC_TEXT)-SetWindowText(num); /显示客户端发来的信息 break;void CTCPDlg:OnSend() /发送按钮的事件函数/ TODO: Add your control notification handler code hereCString str=,str1,str2;GetDlgItem(IDC_SENDTEXT)-GetWindowText(str);if(str=)MessageBox(发送的消息不能为空);/不能发送空消息elseif(:send(s1,str.G

7、etBuffer(1),strlen(str),0)!=SOCKET_ERROR) GetDlgItem(IDC_TEXT)-GetWindowText(str1);str1+=rn;str1+=发送:; str1+=str; GetDlgItem(IDC_TEXT)-SetWindowText(str1);/显示发送的消息 elseGetDlgItem(IDC_TEXT)-GetWindowText(str1); str1+=rn;str1+=消息发送失败!; GetDlgItem(IDC_TEXT)-SetWindowText(str1); /提示发送消息失败客户端程序GetDlgItem

8、(IDC_SENDTEXT)-EnableWindow(false);GetDlgItem(IDC_SEND)-EnableWindow(false); /禁止发送s=:socket(AF_INET,SOCK_STREAM,0);/创建套接字: WSAAsyncSelect(s,this-m_hWnd,WM_SOCKET, FD_READ);/接收读通知void CTCPDlg:OnConnect() /连接按钮的事件函数 CString str,str1; int port; GetDlgItem(IDC_ADDR)-GetWindowText(str); GetDlgItem(IDC_PO

9、RT)-GetWindowText(str1); /输入服务器IP和端口号 if(str=|str1=) MessageBox(服务器地址或端口不能为NULL); else port=atoi(str1.GetBuffer(1); /把字符串形式的port转换成整型数 addr.sin_family=AF_INET; addr.sin_addr.S_un.S_addr=inet_addr(str.GetBuffer(1); /将点分十进制的IP转换成长整数型数 addr.sin_port=ntohs(port); /将无符号短整形port由网络字节顺序转换为主机字节顺序 /addr存储服务器套

10、接字信息,s存储客户端套接字信息 GetDlgItem(IDC_TEXT)-SetWindowText(正在连接服务器.rn); if(:connect(s,(sockaddr*)&addr,sizeof(addr) /向服务器发送连接请求 CString st; st=I am aclient; :send(s,st.GetBuffer(1),strlen(st),0); GetDlgItem(IDC_TEXT)-GetWindowText(str); str+=连接服务器成功!rn; GetDlgItem(IDC_TEXT)-SetWindowText(str); GetDlgItem(I

11、DC_SENDTEXT)-EnableWindow(true); /发送框可用 GetDlgItem(IDC_SEND)-EnableWindow(true); /发送按钮可用 GetDlgItem(IDC_ADDR)-EnableWindow(false); /禁止再在输入服务器ip GetDlgItem(IDC_PORT)-EnableWindow(false); /禁止再输入服务器的端口号 else GetDlgItem(IDC_TEXT)-GetWindowText(str); str+=连接服务器失败!请重试rn; GetDlgItem(IDC_TEXT)-SetWindowText

12、(str); void CTCPDlg:OnSend() /发送按钮的事件函数/ TODO: Add your control notification handler code hereCString str,str1;GetDlgItem(IDC_SENDTEXT)-GetWindowText(str);if(str=)MessageBox(发送的消息不能为空);/不能发送空消息else if(:send(s,str.GetBuffer(1),strlen(str),0)!=SOCKET_ERROR)GetDlgItem(IDC_TEXT)-GetWindowText(str1);str1+=rn;str1+=发送:+str;GetDlgItem(IDC_TEXT)-SetWindowText(str1);/显示发送的消息 else GetDlgItem(IDC_TEXT)-GetWindowText(str1); st

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 纺织服装

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号