TCP socket编程 C/C++实现(windows platform SDK)
来源:互联网 发布:xbox 健身软件 编辑:程序博客网 时间:2024/05/21 15:49
TCP Socket编程 C/C++实现 (Windows Platform SDK)
转载自:http://www.cnblogs.com/8586/archive/2009/04/14/1435678.html
Server:
#pragma comment(lib, "ws2_32.lib")
#include <Winsock2.h>
#include <stdio.h>
void main()
{
//版本协商
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1); //0x0101
err = WSAStartup(wVersionRequested,&wsaData);
if(err!=0)
{
return;
}
if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)
//wsaData.wVersion!=0x0101
{
WSACleanup();
return;
}
//创建Socket
SOCKET sockSvr = socket(AF_INET,SOCK_STREAM,0);
//创建IP地址和端口
SOCKADDR_IN addrSvr;
addrSvr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSvr.sin_family = AF_INET;
addrSvr.sin_port = htons(6000);
//绑定端口监听
bind(sockSvr,(SOCKADDR*)&addrSvr,sizeof(SOCKADDR));
listen(sockSvr,5);
sockaddr_in addrClient;
int len = sizeof(sockaddr);
while(true)
{
//阻塞方法,获得一个客户Socket连接
SOCKET sockConn = accept(sockSvr,(sockaddr*)&addrClient,&len);
char sendbuffer[128];
sprintf(sendbuffer,"Welcom %s!",inet_ntoa(addrClient.sin_addr));
//向客户Socket发送数据
send(sockConn,sendbuffer,strlen(sendbuffer)+1,0);
char recvbuffer[128];
//从客户Soc接受数据
recv(sockConn,recvbuffer,128,0);
printf("%s\n",recvbuffer);
//关闭Socket
closesocket(sockConn);
}
closesocket(sockSvr);
//释放Winsock资源
WSACleanup();
}
#include <Winsock2.h>
#include <stdio.h>
void main()
{
//版本协商
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1); //0x0101
err = WSAStartup(wVersionRequested,&wsaData);
if(err!=0)
{
return;
}
if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)
//wsaData.wVersion!=0x0101
{
WSACleanup();
return;
}
//创建Socket
SOCKET sockSvr = socket(AF_INET,SOCK_STREAM,0);
//创建IP地址和端口
SOCKADDR_IN addrSvr;
addrSvr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSvr.sin_family = AF_INET;
addrSvr.sin_port = htons(6000);
//绑定端口监听
bind(sockSvr,(SOCKADDR*)&addrSvr,sizeof(SOCKADDR));
listen(sockSvr,5);
sockaddr_in addrClient;
int len = sizeof(sockaddr);
while(true)
{
//阻塞方法,获得一个客户Socket连接
SOCKET sockConn = accept(sockSvr,(sockaddr*)&addrClient,&len);
char sendbuffer[128];
sprintf(sendbuffer,"Welcom %s!",inet_ntoa(addrClient.sin_addr));
//向客户Socket发送数据
send(sockConn,sendbuffer,strlen(sendbuffer)+1,0);
char recvbuffer[128];
//从客户Soc接受数据
recv(sockConn,recvbuffer,128,0);
printf("%s\n",recvbuffer);
//关闭Socket
closesocket(sockConn);
}
closesocket(sockSvr);
//释放Winsock资源
WSACleanup();
}
client:
#pragma comment (lib,"ws2_32.lib")
#include <Winsock2.h>
#include <stdio.h>
void main()
{
//版本协商
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1); //0x0101
err = WSAStartup(wVersionRequested,&wsaData);
if(err!=0)
{
return;
}
if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)
//wsaData.wVersion!=0x0101
{
WSACleanup();
return;
}
//创建连向服务器的套接字
SOCKET sock = socket(AF_INET,SOCK_STREAM,0);
//创建地址信息
SOCKADDR_IN hostAddr;
hostAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
hostAddr.sin_family = AF_INET;
hostAddr.sin_port = htons(6000);
//连接服务器
connect(sock,(sockaddr*)&hostAddr,sizeof(sockaddr));
char revBuf[128];
//从服务器获得数据
recv(sock,revBuf,128,0);
printf("%s\n",revBuf);
//向服务器发送数据
send(sock,"Hello Host!",12,0);
closesocket(sock);
}
#include <Winsock2.h>
#include <stdio.h>
void main()
{
//版本协商
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1); //0x0101
err = WSAStartup(wVersionRequested,&wsaData);
if(err!=0)
{
return;
}
if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)
//wsaData.wVersion!=0x0101
{
WSACleanup();
return;
}
//创建连向服务器的套接字
SOCKET sock = socket(AF_INET,SOCK_STREAM,0);
//创建地址信息
SOCKADDR_IN hostAddr;
hostAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
hostAddr.sin_family = AF_INET;
hostAddr.sin_port = htons(6000);
//连接服务器
connect(sock,(sockaddr*)&hostAddr,sizeof(sockaddr));
char revBuf[128];
//从服务器获得数据
recv(sock,revBuf,128,0);
printf("%s\n",revBuf);
//向服务器发送数据
send(sock,"Hello Host!",12,0);
closesocket(sock);
}
- TCP Socket编程 C/C 实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP socket编程 C/C++实现(windows platform SDK)
- TCP/UDP Socket编程 C/C++实现(Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- CP Socket编程 C/C++实现 (Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- Mutex线程同步 (C/C++ Windows Platform SDK 实现)
- C语言socket编程----实现TCP通信
- C#-Socket编程-TCP
- Windows系统下C++socket TCP编程步骤
- 纯C下Windows Socket编程之TCP
- Tcp C/S socket编程
- windows下C调用socket实现TCP和UDP通信
- Critical Section 线程同步 (C/C++ Windows Platform SDK 实现)
- 安装APK文件到Android模拟器和Android sdcard的使用
- 《编程之美》读书笔记(一):中国象棋将帅问题
- JDBC 三种方式注册数据库驱动(转载)
- JVM指令详解(下)
- python内置轻量级数据库sqlite3操作
- TCP socket编程 C/C++实现(windows platform SDK)
- KeyDown,KeyPress和KeyUp详解
- 验证数字最简单正则表达式大全
- IIS服务器不支持FLV视频的解决
- js验证文本框内容不能为空(转)
- JVM指令助记符
- 再写_归并排序
- python网页请求urllib2模块简单封装
- perl 代码整理工具