VC Socket通信代码!!

c++socket通信

 服务器代码:
#pragma comment(lib,"Ws2_32")//包含相应库文件
// socket.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<Winsock2.h>
void  _tmain(int argc, _TCHAR* argv[])
{
 //加载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 svr=socket(AF_INET,SOCK_STREAM,0);
 SOCKADDR_IN svr_addr_in;//创建一个服务器地址结构体,用于保存服务器的信息
 svr_addr_in.sin_family=AF_INET;//协议家族
 svr_addr_in.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//获取当前机子网卡ip地址
 svr_addr_in.sin_port=htons(6000);//设置端口地址
    bind(svr,(sockaddr*)&svr_addr_in,sizeof(SOCKADDR_IN));//将socket绑定到本地机地址上面
 //把服务器socket设置为监听socket,同时能监听5个client客服
 listen(svr,5);
    SOCKADDR_IN client_addr_in;//用于保存客户端的信息
 int len=sizeof(SOCKADDR_IN);
    SOCKET client=accept(svr,(sockaddr*)&client_addr_in,&len);//等待(接受)客户端请求到来
 char b[1024]="ss";
 send(client,b,sizeof(b),0);//向服务器发送数据
 closesocket(client);//关闭客户端套接字
 closesocket(svr);//关闭服务器套接字
    WSACleanup();//卸载socket链接库
 return ;
}
客户端代码:
// socketclient.cpp : 定义控制台应用程序的入口点。
//
#pragma comment(lib,"Ws2_32")//包含相应库文件
#include "stdafx.h"
#include<Winsock2.h>
void _tmain(int argc, _TCHAR* argv[])
{
 //加载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 client=socket(AF_INET,SOCK_STREAM,0);//流式套接字。(数据报套接字,原套接字)
 SOCKADDR_IN svr_addr_in;//保存服务器端的地址信息
 svr_addr_in.sin_family=AF_INET;//代表TCP/IP协议族
 //inet_addr()把字符串变成无符号的长整型。获取服务器地址127.0.0.1:本机做服务器,127.0.0.1是服务器的ip地址
 svr_addr_in.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
 //htons本函数将一个16位数从主机字节顺序转换成网络字节顺序,该端口号要与服务器的端口号相同
 svr_addr_in.sin_port=htons(6000);
 while(connect(client,(sockaddr*)&svr_addr_in,sizeof(svr_addr_in))!=0);//链接服务器,等于0表示连上服务器
 char b[1024];
 recv(client,b,sizeof(b),0);//客户端接受文件
 printf("%s",b);
 closesocket(client);//关闭客户端套接字
 WSACleanup();//卸载winsock动态链接库
}

你可能感兴趣的:(socket,职场,休闲)