网络socket编程(2)---客户端

车包包car

车包包car

2016-02-19 17:42

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享网络socket编程(2)---客户端,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

  其实客户端和服务器端的编写只有一点差别

  1)不需要绑定端口,IP,和协议

  2)不需要监听消息

  3)客户端有连接服务器端的操作(connect)

  在写客户端之前还要做一件事(当然也可以不做),

  就是在一个工作空间里添加几个工程,

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  也就是在那个workspace里添加(add now project)工程。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  下面的就是具体的代码

  

#include Winsock2.h
#include stdio.h
int main()
{
 //-----------------------------------------------
 //用WSAStartup去协商协议版本号
   WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 
 wVersionRequested = MAKEWORD( 1, 1 );
 
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
 
  return 0;
 }
 
 
 if ( LOBYTE( wsaData.wVersion ) != 1 ||HIBYTE( wsaData.wVersion ) != 1 )
 {
  WSACleanup( );
  return 0;
 }
 
 SOCKET SocketClient;
   SocketClient=socket(AF_INET,SOCK_STREAM,0);
 
 //---------------------------------------------------------------
 //用connect去连接服务器
 //连接的服务器的地址
 //socketService指定了服务器的地址,端口和地址家族
 sockaddr_in clientService;
 clientService.sin_addr.S_un.S_addr=inet_addr( "127.0.0.1" );
 clientService.sin_family=AF_INET;
 clientService.sin_port=htons(27015);
 
 //-----------------------------------------------------------------
 //用connect连接服务器
 if ( connect(SocketClient, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
  printf( "Failed to connect.n" );
  WSACleanup();
  return 0;
 }
 
 //-----------------------------------------------------------------
 //套接子连接成功后调用recv接收消息
 char RecvBuffer[50];
 recv(SocketClient,RecvBuffer,50,0);
 printf("%s",RecvBuffer);
 
 //-----------------------------------------------------------------
 //发送消息给服务器
 send(SocketClient,"this is client message",sizeof("this is client message")+1,0);

 //-----------------------------------------------------------------
 //做最后的收尾工作
 closesocket(SocketClient);
 WSACleanup( );
return 0;
}

  这样就可以和服务器进行通信了

  当然在写客户端的时候,也要和写服务器端一样连接Ws2_32.lib文件 不然编译器连接不上

  这是一个最简单的基于dos的通讯软件

  下一步我将会利用多线程编写一个基于window图形窗口的通信软件.

展开更多 50%)
分享

猜你喜欢

网络socket编程(2)---客户端

编程语言 网络编程
网络socket编程(2)---客户端

Zune 客户端

平面设计 标志设计 UI设计 VI设计
Zune 客户端

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

win客户端和linux客户端的区别

服务器
win客户端和linux客户端的区别

基于客户端的分页导航(2)

电脑网络
基于客户端的分页导航(2)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

扔掉Socket实现网络编程

编程语言 网络编程
扔掉Socket实现网络编程

智能客户端(SmartClient)

电脑网络
智能客户端(SmartClient)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

除了再见无路可走 - QQ伤感分组

除了再见无路可走 - QQ伤感分组

PHP新手上路(8)

PHP新手上路(8)
下拉加载更多内容 ↓