简单的UDP回射服务程序与客户程序(修改自Unix网络编程一书)
2012-03-30 01:18
399 查看
#include<winsock2.h> #include"InitSock.h" #include<windows.h> #include<cstdio> #include<cstdlib> #include<cstring> #pragma comment(lib,"ws2_32.lib") CInitSock InitSock ; #define SERVERPORT 5010 void dg_echo(SOCKET sSockfd , SOCKADDR * pcliaddr, size_t clilen) ; int main(void) { SOCKET sSockfd ; sockaddr_in Servaddr , Cliaddr ; sSockfd = socket(AF_INET,SOCK_DGRAM,0) ; memset(&Servaddr,0,sizeof(Servaddr)) ; memset(&Cliaddr,0,sizeof(Cliaddr)) ; Servaddr.sin_family = AF_INET ; Servaddr.sin_port = htons(SERVERPORT) ; Servaddr.sin_addr.s_addr = htonl(INADDR_ANY) ; bind(sSockfd,(SOCKADDR *)&Servaddr, sizeof(Servaddr)) ; dg_echo(sSockfd,(SOCKADDR*) &Cliaddr ,sizeof(Cliaddr)) ; return 0 ; } void dg_echo(SOCKET sSockfd , SOCKADDR * pcliaddr, size_t clilen) { int n = 0 ; int iSend = 0 ; int len = 0 ; TCHAR szRecvMsg[1024] ; TCHAR szSendMsg[1024] ; for(; ; ) { len = clilen ; n = recvfrom(sSockfd,szRecvMsg,1024,0,pcliaddr,&len) ; szRecvMsg = '\0' ; printf("接收到 %d 字节数据,内容为 %s\n",n , szRecvMsg) ; strcpy(szSendMsg,szRecvMsg) ; iSend = sendto(sSockfd,szSendMsg,strlen(szSendMsg),0,pcliaddr,len) ; printf("发送到 %d 字节数据,内容为 %s\n",iSend,szSendMsg) ; } }
#include<winsock2.h> #include"InitSock.h" #include<windows.h> #include<cstdio> #include<cstdlib> #include<cstring> #pragma comment(lib,"ws2_32.lib") CInitSock InitSock ; #define SERVERPORT 5010 void dg_cli(FILE *fp,SOCKET sockfd, const SOCKADDR * pservaddr, int servlen) ; int main(void) { SOCKET sSockClient ; sockaddr_in Servaddr ; memset(&Servaddr,0,sizeof(Servaddr)) ; Servaddr.sin_family = AF_INET ; Servaddr.sin_port = htons(SERVERPORT) ; Servaddr.sin_addr.s_addr = inet_addr("127.0.0.1") ; sSockClient = socket(AF_INET,SOCK_DGRAM,0) ; dg_cli(stdin,sSockClient,(SOCKADDR*) &Servaddr,sizeof(Servaddr)) ; return 0 ; } void dg_cli(FILE *fp,SOCKET sockfd, const SOCKADDR * pservaddr, int servlen) { int iRecv = 0 ; int iSend = 0 ; TCHAR szSendMsg[1024] ; TCHAR szRecvMsg[1024] ; while(fgets(szSendMsg,1024,fp) != NULL) { iSend = sendto(sockfd,szSendMsg,strlen(szSendMsg),0,pservaddr,servlen) ; iRecv = recvfrom(sockfd,szRecvMsg,1024,0,NULL,NULL) ; szRecvMsg[iRecv] = '\0' ; printf("回显数据: \n") ; fputs(szRecvMsg,stdout) ; } }
相关文章推荐
- 简单的TCP回射服务程序与客户程序(修改自UNP一书)
- 《unix网络编程》(18)基本UDP套接字 简单客户服务器回射程序及改进
- 【unix网络编程】4-11显示客户IP地址和端口号的时间获取服务程序
- UNIX网络编程学习(11)--分析TCP回射服务+客户程序:正常启动与正常终止
- 读书笔记之 简单时间获取客户/服务程序
- UNIX网络编程1.5一个简单的时间获取服务器程序1.6客户服务器程序索引表
- UNIX网络编程 -- -- 一个简单的时间获取客户程序
- UNIX网络编程——为每个客户现场分派一个线程(简单示例参考)
- linux简单的TCP与UDP的socket程序以及机器大小端的判断程序
- 用Nhibernate怎么实现数据的添加、删除、修改简单程序
- WCF服务二:创建一个简单的WCF服务程序
- java实现了简单的Echo服务程序分服务器和客户端
- 本程序说明了如何建立一个简单的可以接收UDP服务器数据的UDP客户端
- VC++ TCP/IP 服务/客户程序源代码
- 快速搭建简单的LBS程序——地图服务
- 用C#写一个简单的WINDOWS服务程序
- UNIX网络编程——非阻塞connect: Web客户程序
- socket 实现的简单的p2p服务程序
- 一个简单的服务程序
- 【socket编程】一个简单的基于UDP的客户/服务端例子(vs2008)