📄 tcpserver.cpp
字号:
#include "../comm/initsock.h"
#include <stdio.h>
CInitSock initSock;
int main()
{
//创建套接字
SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sListen == INVALID_SOCKET) //执行失败返回INVALID_SOCKET(-1)
{
printf("Failed socket()\n");
return 0;
}
//填充sockaddr_in结构
sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(4567);
sin.sin_addr.S_un.S_addr = INADDR_ANY;
//绑定这个套接字到一个本地地址
if (::bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
{
printf("Failed bind()\n");
return 0;
}
//进入监听模式
if (::listen(sListen, 2) == SOCKET_ERROR)
{
printf("Failed listen()\n");
return 0;
}
//循环接受客户的连接请求
sockaddr_in remoteAddr;
int nAddrLen = sizeof(remoteAddr);
SOCKET sClient;
char szText[] = "TCP Server Demo!\r\n";
char buff[1024] = {0};
while (TRUE)
{
//接受新连接
sClient = ::accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);
if (sClient == INVALID_SOCKET)
{
printf("Failed accept()\n");
continue;
}
printf(" 接收到一个连接:%s\r\n", inet_ntoa(remoteAddr.sin_addr));
//向客户端发送数据
::send(sClient, szText, strlen(szText), 0);
// ::recv(sClient, buff, 1024, 0);
// printf("%s", buff);
//关闭通客户端的连接
::closesocket(sClient);
}
//关闭监听套接字
::closesocket(sListen);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -