main.cpp

来自「与游戏,网络,输入法相关」· C++ 代码 · 共 70 行

CPP
70
字号
#include <stdio.h>
#include <windows.h>

#include "../../gamelib/g_netsocket.h"
#include "../../gamelib/g_cmdpacket.h"

int main()
{
	CG_NetSocket listen;

	/* initialize listen socket */
	if(!listen.Initialize(PROTOCOL_TCP))
		return 1;

	/* set to non-blocking mode */
	listen.SetNonBlocking();

	/* bind listen port */
	if(!listen.BindAddr(NULL,7788))
		return 1;

	/* begin listen */
	if(!listen.Listen())
		return 1;

	CG_NetSocket client,*server;
	if(!client.Initialize(PROTOCOL_TCP))
		return 1;
	client.Connect("localhost",7788);

	if(!listen.CanRead())
		return 1;

	SOCKET tmp = listen.Accept();
	if(!tmp) 
	{
		Sys_Log("accept failed");
		return 1;
	}

	server = new CG_NetSocket;
	server->Attach(tmp);
	Sys_Log("accept ok");
	char addr[20];
	short port;
	server->GetLocalAddr(addr,&port);
	Sys_Log("local ip = %s,port = %d",addr,port);
	server->GetRemoteAddr(addr,&port);
	Sys_Log("remote ip = %s,port = %d",addr,port);
	
	char msg[128];
	strcpy(msg,"client send msg");
	/* client send msg */
	client.Send(msg,strlen(msg));

	char buf[128];
	/* server try recv msg */
	int ret = server->Recv(buf,128);
	if(ret > 0)
	{
		buf[ret] = '\0';
		Sys_Log("recv bytes = %d,msg = %s",ret,buf);
	}

	/* quit */
	getchar();
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?