一个简单的c++ socket服务程序
来源:互联网 发布:英语语音识别软件 编辑:程序博客网 时间:2024/06/01 10:34
// CppSocket.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "stdio.h"
#include "WinSock2.h"
#include "WinDef.h"
int _tmain(int argc, _TCHAR* argv[])
{
// 初始化WS2_32.dll
WSADATA wsaData;
BYTE minorVer = 2;
BYTE majorVer = 2;
WORD sockVersion = MAKEWORD(minorVer, majorVer);
if(WSAStartup(sockVersion, &wsaData) != 0)
{
exit(0);
}
// 创建套节字
SOCKET sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sListen == INVALID_SOCKET)
{
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 = inet_addr("127.0.0.1");
// 绑定这个套节字到一个本地地址
if(bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
{
printf("Failed bind() \n");
return 0;
}
// 进入监听模式
if(listen(sListen, 0) == SOCKET_ERROR)
{
printf("Failed listen() \n");
return 0;
}
// 循环接受客户的连接请求
sockaddr_in remoteAddr;
int nAddrLen = sizeof(remoteAddr);
SOCKET sClient;
char szText[] = " TCP Server Demo正常运行! \r\n";
while(TRUE)
{
// 接受一个新连接
sClient = accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);
if(sClient == INVALID_SOCKET)
{
printf("Failed accept()");
continue;
}
printf(" 接受到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));
// 向客户端发送数据
send(sClient, szText, strlen(szText), 0);
// 接收数据
char buff[512];
int nRecv = recv(sClient,buff, 512, 0);
if(nRecv > 0)
{
buff[nRecv] = '\0';
printf(" 接收到数据:%s", buff);
}
// 关闭同客户端的连接
closesocket(sClient);
}
// 关闭监听套节字
closesocket(sListen);
return 0;
}
//
在 stdafx.h 中添加
#pragma comment(lib, "ws2_32.lib")
#include "stdafx.h"
#include "stdio.h"
#include "WinSock2.h"
#include "WinDef.h"
int _tmain(int argc, _TCHAR* argv[])
{
// 初始化WS2_32.dll
WSADATA wsaData;
BYTE minorVer = 2;
BYTE majorVer = 2;
WORD sockVersion = MAKEWORD(minorVer, majorVer);
if(WSAStartup(sockVersion, &wsaData) != 0)
{
exit(0);
}
// 创建套节字
SOCKET sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sListen == INVALID_SOCKET)
{
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 = inet_addr("127.0.0.1");
// 绑定这个套节字到一个本地地址
if(bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
{
printf("Failed bind() \n");
return 0;
}
// 进入监听模式
if(listen(sListen, 0) == SOCKET_ERROR)
{
printf("Failed listen() \n");
return 0;
}
// 循环接受客户的连接请求
sockaddr_in remoteAddr;
int nAddrLen = sizeof(remoteAddr);
SOCKET sClient;
char szText[] = " TCP Server Demo正常运行! \r\n";
while(TRUE)
{
// 接受一个新连接
sClient = accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);
if(sClient == INVALID_SOCKET)
{
printf("Failed accept()");
continue;
}
printf(" 接受到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));
// 向客户端发送数据
send(sClient, szText, strlen(szText), 0);
// 接收数据
char buff[512];
int nRecv = recv(sClient,buff, 512, 0);
if(nRecv > 0)
{
buff[nRecv] = '\0';
printf(" 接收到数据:%s", buff);
}
// 关闭同客户端的连接
closesocket(sClient);
}
// 关闭监听套节字
closesocket(sListen);
return 0;
}
- 一个简单的c++ socket服务程序
- 【C#】一个简单的windows服务程序
- 使用ServerSocket、Socket创建一个简单的服务聊天程序
- 用C写一个简单的win32服务程序
- C/C++ socket编程教程之二:一个简单的Linux下的socket程序
- C#:简单的Socket异步通信服务
- 一个简单的socket通信聊天程序
- python3.2 一个简单的socket 程序
- 一个简单入门的win32 socket程序
- 一个简单的socket文件传输程序
- 一个简单的java socket通信程序
- 一个简单的Qt socket 程序
- 一个简单的socket服务器但程序
- 一个简单的python socket程序
- 一个简单的NIO Socket通信程序
- 一个简单的Socket分包程序
- 一个简单的局域网Socket聊天程序
- 创建一个简单的VC++ Socket程序
- c语言解析json数据
- iframe自适应高度的多种方法方法小结
- Linux安装配置maven以及搭建nexus私服
- JSON的C语言编解码器——cJSON和json-c
- 对象块 Blocks
- 一个简单的c++ socket服务程序
- dede自主仿网站
- jquery set_input_default默认值设置
- usaco Palindromic Squares 解题报告
- 用PYTHON获取本机的IP地址
- java中hashcode()与equals()详解
- C#创建与调用Webservice基础
- Unity3D 游戏引擎之实现平面多点触摸
- Linux驱动修炼之道-SPI驱动框架源码分析(上)