国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

簡單的socket編程入門示例

2020-01-26 15:33:24
字體:
供稿:網(wǎng)友

功能簡單實(shí)現(xiàn)client輸入內(nèi)容發(fā)送到server端輸出

復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std;
int main()
{
 // 初始化 Winsock.
 WSADATA wsaData;
 int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
 if ( iResult != NO_ERROR )
 {
  cout<<"failed to initialize!"<<endl;
  return 0;
 }

 // 建立socket socket.
 SOCKET client;
 client = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
 if ( client == INVALID_SOCKET )
 {
  cout<<"failed to create client socket!"<<endl;
  WSACleanup();
  return 0;
 }

 // 連接到服務(wù)器.
 sockaddr_in clientService;
 clientService.sin_family = AF_INET;
 clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
 clientService.sin_port = htons( 13579 );

 if ( connect( client, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR)
 {
  cout<<"Failed to connect"<<endl;
  closesocket(client);
  WSACleanup();
  return 0;
 }

 // 發(fā)送數(shù)據(jù).
 int bytesSent;
 char sendbuf[4096] = "Client: Sending data.";
 while(TRUE)
 {
  bytesSent = send( client, sendbuf, strlen(sendbuf), 0 );
  gets_s(sendbuf, 4096);
 }

 closesocket(client);
 WSACleanup();
 return 0;
}

復(fù)制代碼 代碼如下:

#include <iostream>
#include <WinSock2.h>
#pragma comment(lib, "ws2_32.lib")

using namespace std;

int main()
{
 WSADATA wsaData;

 int iInit = WSAStartup(MAKEWORD(2, 2), &wsaData);
 if (iInit != NO_ERROR)
 {
  cout<<"failed to initialize!"<<endl;
  return 0;
 }

 SOCKET server = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP);
 if (server == INVALID_SOCKET)
 {
  cout<<"failed to create server socket!"<<endl;
  WSACleanup();
  return 0;
 }

 sockaddr_in bindinfo;
 bindinfo.sin_family = AF_INET;
 bindinfo.sin_addr.s_addr =  inet_addr( "127.0.0.1" );
 bindinfo.sin_port = htons(13579);
 if ( bind( server, (SOCKADDR*) &bindinfo, sizeof(bindinfo) ) == SOCKET_ERROR )
 {
  cout<<"failed to bind!"<<endl;
  closesocket(server);
  WSACleanup();
  return 0;
 }

 //listen
 if (listen(server, 1) == SOCKET_ERROR) {
  cout<<"listen failed"<<endl;
  closesocket(server);
  WSACleanup();
  return 0;
 }

 //accept and block
 SOCKET socketWork = accept(server, NULL, NULL);
 if (socketWork == INVALID_SOCKET) {
  wprintf(L"accept failed with error: %ld/n", WSAGetLastError());
  closesocket(server);
  WSACleanup();
  return 0;
 }

 int byteRecv = SOCKET_ERROR;
 char recvBuf[4096] = "";

 while(TRUE)
 {
  byteRecv = recv(socketWork, recvBuf, 4096, 0);
  if (byteRecv == 0)
  {
   break;
  }
  recvBuf[byteRecv] = 0;
  cout<<recvBuf<<endl;
 }

 closesocket(server);
 WSACleanup();
 return 0;
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 南宁市| 开封市| 攀枝花市| 喀喇沁旗| 锦屏县| 普宁市| 永城市| 嘉善县| 高淳县| 梧州市| 邢台市| 晋江市| 怀集县| 临泽县| 巴东县| 新宁县| 广丰县| 慈利县| 微山县| 玛沁县| 射洪县| 湖北省| 宁武县| 扶风县| 沭阳县| 府谷县| 高密市| 连南| 霍邱县| 界首市| 潮安县| 越西县| 平山县| 教育| 潼关县| 古丈县| 禄劝| 莒南县| 临高县| 阿城市| 鹰潭市|