程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 網絡socket編程(2)---客戶端

網絡socket編程(2)---客戶端

編輯:vc教程

  其實客戶端和服務器端的編寫只有一點差別

  1)不需要綁定端口,IP,和協議

  2)不需要監聽消息

  3)客戶端有連接服務器端的操作(connect)

  在寫客戶端之前還要做一件事(當然也可以不做),

  就是在一個工作空間裡添加幾個工程,

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

  下面的就是具體的代碼

  

#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圖形窗口的通信軟件.

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved