网络编程简单例子(windows、linux)

windows:

TCP通信:

//client
#include <Winsock2.h>
#include <stdio.h>
void main()
{
	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 ;
	}
	//创建套接字
	SOCKET sockClient = socket(AF_INET , SOCK_STREAM ,0) ;
	SOCKADDR_IN addrSrv ;
	addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
	addrSrv.sin_family = AF_INET ;
	addrSrv.sin_port = htons(8000);
	connect(sockClient ,(SOCKADDR*)&addrSrv ,sizeof(SOCKADDR ));
	//接收数据;
	char recvBuf[100];
	recv(sockClient ,recvBuf,100,0) ;
	printf("recv :%s",recvBuf) ;
	send(sockClient ,"this is the client ",strlen("this is the client ") +1,0) ;
	closesocket(sockClient) ;
	WSACleanup ();

}

//server.cpp
#include <Winsock2.h>
#include <stdio.h>
void main()
{
	//
	WORD wVersionReguested ;
	WSADATA  wsaData ;
	int err;
	wVersionReguested = MAKEWORD( 1 ,1 );
	err = WSAStartup(wVersionReguested ,&wsaData ) ;
	if( err !=0 )
	{
		return ;
	}
	if(LOBYTE(wsaData.wVersion )!=1 || 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_port = htons(8000) ;
	//绑定套接字
	bind(sockSrv ,(SOCKADDR *)&addrSrv ,sizeof(SOCKADDR) );
	listen(sockSrv,5) ;
	SOCKADDR_IN addrClient ;
	int len = sizeof(SOCKADDR) ;
	while(1)
	{
		//等待客户请求的到来;
		SOCKET sockConn = accept(sockSrv ,(SOCKADDR*)&addrClient ,&len );
		char sendBuf[100];
		sprintf(sendBuf,"welcom %s here !\n",inet_ntoa(addrClient.sin_addr));
		//发送数据
		send(sockConn ,sendBuf ,strlen(sendBuf)+1,0) ;
		char recvBuf[100];
		recv(sockConn, recvBuf,100,0);
		printf("recv: %s\n",recvBuf) ;
		closesocket(sockConn) ;
	}
}

UDP通信

服务端:

#include <stdio.h>
#include "winsock2.h"

void server() {

	WSADATA wsaData;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值