设为首页 加入收藏

TOP

网络编程――基于TCP的程序设计和基于UDP的程序设计 (四)
2014-11-23 23:29:59 来源: 作者: 【 】 浏览:5
Tags:网络编程 基于 TCP 程序设计 UDP
**************************************
加载Winsock库
****************************************************************/
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return;
}
/**************************************************************
第一步:创建Winsock套接字
****************************************************************/
SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
/**************************************************************
第二步:将创建的套接字绑定到指定地址和端口上
****************************************************************/
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
bind(sockSrv,(const sockaddr*)&addrSrv,sizeof(SOCKADDR));
/**************************************************************
第三步:等待并接受客户端发送的消息
****************************************************************/
SOCKADDR_IN addrClient;
char recvBuf[100];
int len=sizeof(SOCKADDR);
recvfrom(sockSrv,recvBuf,100,0,(sockaddr*)&addrClient,&len);
printf("%s",recvBuf);
char sendBuf[100];
sprintf(sendBuf,"This is UDP Serve! Welcome %s",inet_ntoa(addrClient.sin_addr));
sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,
(const sockaddr*)&addrClient,sizeof(SOCKADDR));
closesocket(sockSrv);

WSACleanup();
system("pause");
}

/**************************************************************
基于UDP的客户端应用程序示例代码
****************************************************************/

#include "stdafx.h"
#include
#include
#include

#pragma comment(lib,"ws2_32.lib")
void main()
{
/**************************************************************
加载Winsock库
****************************************************************/
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return;
}
/**************************************************************
第一步:创建Winsock套接字
****************************************************************/
SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
/**************************************************************
第一步:向服务器发送消息
****************************************************************/
SOCKADDR_IN addrClient;
addrClient.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrClient.sin_family=AF_INET;
addrClient.sin_port=htons(6000);
sendto(sockClient,"My name is UDP Client!",strlen("My name is UDP Client!")+1,0,
(const sockaddr*)&addrClient,sizeof(SOCKADDR));
char recvBuf[100];
int len=sizeof(SOCKADDR);
recvfrom(sockClient,recvBuf,100,0,(sockaddr*)&addrClient,&len);
printf("%s",recvBuf);
closesocket(sockClient);
WSACleanup();

system("pause");
}

运行结果如下:

\

<script type=text/java script> if ($ != jQuery) {

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇编写程序:控制cpu占用率 下一篇C语言文件操作解析(五)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: