基本讲解在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;
};