VC中的socket通讯例程(TCP协议)
来源:互联网 发布:宁夏干部培训网络学习 编辑:程序博客网 时间:2024/05/01 13:29
//TCP的服务器端:(TcpSrv.cpp)
#include "Winsock2.h"
#include "stdio.h"
void main()
...{
//初始化socket编程环境
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
...{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
...{
WSACleanup( );
return;
}
//创建Tcp服务器socket
SOCKET sockSrv = socket( AF_INET , SOCK_STREAM , 0 );
//服务器地址
SOCKADDR_IN addrSrv ;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY) ;
addrSrv.sin_family = AF_INET ;
addrSrv.sin_port = htons(4000) ;
//将socket与地址绑定在一起
bind( sockSrv ,(SOCKADDR*)&addrSrv , sizeof(SOCKADDR) ) ;
//开始监听客户端请求,最大连接数为5
listen( sockSrv , 5 ) ;
//用于存放客户端地址
SOCKADDR_IN addrClient ;
int len = sizeof( SOCKADDR_IN ) ;
//不断接收客户端发送的请求
while ( 1 )
...{
//接收到的客户端请求socket
SOCKET sockConn = accept( sockSrv , (SOCKADDR *)&addrClient , &len ) ;
//发送数据
char sendBuf[100] ;
sprintf( sendBuf , "Weclome %s to here:" , inet_ntoa(addrClient.sin_addr) ) ;
send( sockConn , sendBuf , strlen(sendBuf)+1 , 0 ) ;
//接收数据
char recvBuf[100] ;
recv( sockConn , recvBuf , 100 , 0 ) ;
printf("%s " , recvBuf ) ;
//关闭socket
closesocket( sockConn ) ;
}
//清理socket编程环境
WSACleanup() ;
}
//TCP的客户端:(TcpClient.cpp)
# include "Winsock2.h"
# include "stdio.h"
void main()
...{
//初始化socket编程环境
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
...{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
...{
WSACleanup( );
return;
}
//建立客户端socket
SOCKET sockClient = socket( AF_INET ,SOCK_STREAM , 0 ) ;
//服务器地址
SOCKADDR_IN addrSrv ;
addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1") ;
addrSrv.sin_family = AF_INET ;
addrSrv.sin_port = htons( 4000 ) ;
//连接服务器
connect( sockClient , (SOCKADDR*)&addrSrv , sizeof(SOCKADDR)) ;
//等待接收服务器的响应
char recvBuf[100];
recv( sockClient , recvBuf , 100 , 0 ) ;
printf( "%s " , recvBuf ) ;
char sendBuf[100] ;
sprintf( sendBuf , "%s" , "this is zhang san" ) ;
send( sockClient , sendBuf , strlen(sendBuf)+1 , 0 ) ;
closesocket( sockClient ) ;
WSACleanup() ;
}
#include "Winsock2.h"
#include "stdio.h"
void main()
...{
//初始化socket编程环境
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
...{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
...{
WSACleanup( );
return;
}
//创建Tcp服务器socket
SOCKET sockSrv = socket( AF_INET , SOCK_STREAM , 0 );
//服务器地址
SOCKADDR_IN addrSrv ;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY) ;
addrSrv.sin_family = AF_INET ;
addrSrv.sin_port = htons(4000) ;
//将socket与地址绑定在一起
bind( sockSrv ,(SOCKADDR*)&addrSrv , sizeof(SOCKADDR) ) ;
//开始监听客户端请求,最大连接数为5
listen( sockSrv , 5 ) ;
//用于存放客户端地址
SOCKADDR_IN addrClient ;
int len = sizeof( SOCKADDR_IN ) ;
//不断接收客户端发送的请求
while ( 1 )
...{
//接收到的客户端请求socket
SOCKET sockConn = accept( sockSrv , (SOCKADDR *)&addrClient , &len ) ;
//发送数据
char sendBuf[100] ;
sprintf( sendBuf , "Weclome %s to here:" , inet_ntoa(addrClient.sin_addr) ) ;
send( sockConn , sendBuf , strlen(sendBuf)+1 , 0 ) ;
//接收数据
char recvBuf[100] ;
recv( sockConn , recvBuf , 100 , 0 ) ;
printf("%s " , recvBuf ) ;
//关闭socket
closesocket( sockConn ) ;
}
//清理socket编程环境
WSACleanup() ;
}
//TCP的客户端:(TcpClient.cpp)
# include "Winsock2.h"
# include "stdio.h"
void main()
...{
//初始化socket编程环境
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
...{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
...{
WSACleanup( );
return;
}
//建立客户端socket
SOCKET sockClient = socket( AF_INET ,SOCK_STREAM , 0 ) ;
//服务器地址
SOCKADDR_IN addrSrv ;
addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1") ;
addrSrv.sin_family = AF_INET ;
addrSrv.sin_port = htons( 4000 ) ;
//连接服务器
connect( sockClient , (SOCKADDR*)&addrSrv , sizeof(SOCKADDR)) ;
//等待接收服务器的响应
char recvBuf[100];
recv( sockClient , recvBuf , 100 , 0 ) ;
printf( "%s " , recvBuf ) ;
char sendBuf[100] ;
sprintf( sendBuf , "%s" , "this is zhang san" ) ;
send( sockClient , sendBuf , strlen(sendBuf)+1 , 0 ) ;
closesocket( sockClient ) ;
WSACleanup() ;
}
- VC中的socket通讯例程(TCP协议)
- VC中的socket通讯例程(UDP协议)
- 基于SOCKET机制的TCP协议通讯
- 基于SOCKET机制的TCP协议通讯
- TCP通讯socket自定义协议的实现
- socket编程 通讯协议tcp,数据承载协议http
- TCP/IP协议、HTTP协议、SOCKET通讯详解
- UDP、TCP通讯例程汇总
- [Linux C]TCP通讯例程
- 使用SOCKET实现TCP/IP协议的通讯
- 基于TCP协议的socket通讯实现收发消息
- 使用SOCKET实现TCP/IP协议的通讯
- 使用SOCKET实现TCP/IP协议的通讯
- 使用SOCKET实现TCP/IP协议的通讯
- 使用SOCKET实现TCP/IP协议的通讯
- 使用SOCKET实现TCP/IP协议的通讯
- 使用SOCKET实现TCP/IP协议的通讯
- 使用SOCKET实现TCP/IP协议的通讯
- Foxit Reader 2.0
- Struts最佳实践
- 打算把博客搬到这,希望多多捧场
- 关于智能卡(1)
- 123123
- VC中的socket通讯例程(TCP协议)
- 活用设计模式
- 将gcc下的程序移植到MSVC下 之二 - __builtin_return_address的实现
- 警惕苏宁电器分期(招行信用卡)陷阱!!
- TCP拥塞控制方案
- 昨天 10-22
- Linux启动分析专题 (1)
- netbeans5.5使用技巧
- Linux启动分析专题(2)