TCP/UDP---C++

TCP

服务端
1、初始化套接字库
2、创建监听套接字(socket())
3、为监听套接字绑定(bind())IP和Port
4、监听(listen())
5、接收连接(accept())
6、通信(send()、recv())
7、关闭套接字(closesocket())

#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
#include <iostream>
using namespace std;
#pragma warning(disable:4996)

void StartServer()
{
	WSADATA ws;                         //创建一个WSADATA结构体
	WSAStartup(MAKEWORD(2, 2), &ws);   //初始化win socket网络库,申请2.2的版本

	// 定义套接字,使用TCP/IP协议,所以参数为为AF_INET和SOCK_STREAM
	int nListen = socket(AF_INET, SOCK_STREAM, 0);

	// 创建socket失败
	if (nListen == -1)
	{
		cout << "Create socket failed!" << endl;
		return;
	}

	sockaddr_in saddr;
	saddr.sin_family = AF_INET;
	saddr.sin_port = htons(8080);                  //绑定端口
	saddr.sin_addr.s_addr = htonl(INADDR_ANY);      //绑定本机IP,INADDR_ANY是0.0.0.0,泛指本机的意思
	//saddr.sin_addr.s_addr = inet_addr(ip);       	// 绑定特定ip地址

	// 使用bind给sock绑定IP地址和端口
	// :: 表示用的是全局的函数
	if (::bind(nListen, (sockaddr*)&saddr, sizeof(saddr)) != 0)
	{
		cout << "bind failed!" << endl;
		return;
	}
	listen(nListen, 3);        // 开启监听,设置最大连接数量为3个

	while (true)
	{
		//接收客户端的连接
		sockaddr_in caddr;
		int len = sizeof(caddr);
		// 读取用户连接信息,会创建新的socket,用来单独和这个客户端通信,后面两个参数要传指针,用
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值