网络连接之Socket编程


 #include <winsock2.h> 
 #include <stdio.h> 
 #pragma comment(lib,"ws2_32.lib") 
 int main() 
 { 
 //SOCKET前的一些检查,检查协议库的版本,为了避免别的版本的socket,并且通过 
 //WSAStartup启动对应的版本,WSAStartup的参数一个是版本信息,一个是一些详细的细节,注意高低位 
 //WSAStartup与WSACleanup对应 
 int err; 
  WORD versionRequired; 
  WSADATA wsaData; 
  versionRequired=MAKEWORD(1,1); 
  err=WSAStartup(versionRequired,&wsaData);//协议库的版本信息 
  //通过WSACleanup的返回值来确定socket协议是否启动 
 if (!err) 
 { 
 printf("客户端嵌套字已经打开!\n"); 
 } 
 else 
 { 
 printf("客户端的嵌套字打开失败!\n"); 
 return 0;//结束 
 } 
 //创建socket这个关键词,这里想一下那个图形中的socket抽象层 
 //注意socket这个函数,他三个参数定义了socket的所处的系统,socket的类型,以及一些其他信息 
 SOCKET clientSocket=socket(AF_INET,SOCK_STREAM,0); 

 //socket编程中,它定义了一个结构体SOCKADDR_IN来存计算机的一些信息,像socket的系统, 
 //端口号,ip地址等信息,这里存储的是服务器端的计算机的信息 
 SOCKADDR_IN clientsock_in; 
clientsock_in.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); 
 clientsock_in.sin_family=AF_INET; 
clientsock_in.sin_port=htons(6000); 

 //前期定义了套接字,定义了服务器端的计算机的一些信息存储在clientsock_in中, 
//准备工作完成后,然后开始将这个套接字链接到远程的计算机 
 //也就是第一次握手 
 
 connect(clientSocket,(SOCKADDR*)&clientsock_in,sizeof(SOCKADDR));//开始连接 
 
 
 char receiveBuf[100]; 
 
 //解释socket里面的内容 
recv(clientSocket,receiveBuf,101,0); 
 printf("%s\n",receiveBuf); 
 
 //发送socket数据 
 send(clientSocket,"hello,this is client",strlen("hello,this is client")+1,0); 
 
//关闭套接字 
 closesocket(clientSocket); 
 //关闭服务 
 WSACleanup(); 
 return 0; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值