C++ socket 通信

基本讲解在python的socket中

还有下面的参考必看:

https://www.cnblogs.com/langren1992/p/5101380.html

服务器端:

main.cpp

#define _CRT_SECURE_NO_WARNINGS /* VS2013,2015需要这一行 */
#include <stdio.h>
#include "osapi/osapi.h"
#include "TcpConn.h"

int main()
{
	//printf("hello");
	OS_TcpSocket serv_sock ;
	 //(1): 占用端口号
	serv_sock.Open(OS_SockAddr(9555), true);

	// (2): 监听
	serv_sock.Listen();

	while(1)
	{
		OS_TcpSocket work_sock;
		if(serv_sock.Accept(&work_sock) < 0)
		{
/*
serv_sock.Accept(&work_sock) 这句话是建立连接,只有执行这句话才可以让客户端连接。
work_sock:这个socket对象才是接受和发生的对象。
*/
			break;
		}

		// 新建一个线程,处理该client的请求
		// 这里为了同时处理多个客户端发过来的请求,如果不是多线程,则只能处理一个客户
		TcpConn* conn = new TcpConn(work_sock);
		/*
		TcpConn这个类是自己定义的类,里面有一个成员变量socket对象就是work_sock
		用这个对象进行多线程的接受 和发送。
		具体的接受和发送功能在 Routine中定义
		*/
		conn->Run(); //目前这里还没有把他给销毁掉,不好。C++没有自动销毁的功能
	}


	return 0;
}


服务器端

#pragma once
#include "osapi/osapi.h"
class TcpConn : public OS_Thread
{
public:
	TcpConn(OS_TcpSocket work_sock);
	~TcpConn(void);
	private:
	virtual int Routine();

private:
	OS_TcpSocket m_WorkSock;

};

猜你喜欢

转载自blog.csdn.net/weixin_42053726/article/details/88389964