欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

淺談C++ Socket編程

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

sockets(套接字)編程有三種,流式套接字(SOCK_STREAM),數(shù)據(jù)報套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket編程是采用的流式套接字。

服務(wù)器端編程的步驟:

1:加載套接字庫,創(chuàng)建套接字(WSAStartup()/socket());

2:綁定套接字到一個IP地址和一個端口上(bind());

3:將套接字設(shè)置為監(jiān)聽模式等待連接請求(listen());

4:請求到來后,接受連接請求,返回一個新的對應(yīng)于此次連接的套接字(accept());

5:用返回的套接字和客戶端進(jìn)行通信(send()/recv());

6:返回,等待另一連接請求;

7:關(guān)閉套接字,關(guān)閉加載的套接字庫(closesocket()/WSACleanup())。

客戶端編程的步驟:

1:加載套接字庫,創(chuàng)建套接字(WSAStartup()/socket());

2:向服務(wù)器發(fā)出連接請求(connect());

3:和服務(wù)器端進(jìn)行通信(send()/recv());

4:關(guān)閉套接字,關(guān)閉加載的套接字庫(closesocket()/WSACleanup())。

第一式: 加載/釋放Winsock庫:

1.加載方法:

WSADATA wsa;

/*初始化socket資源*/

if (WSAStartup(MAKEWORD(1,1),&wsa) != 0)

{

return; //代表失敗

}

2.釋放方法:

WSACleanup();

第二式: 構(gòu)造SOCKET:

1.服務(wù)端:構(gòu)造監(jiān)聽SOCKET,流式SOCKET.

SOCKET  Listen_Sock  = socket(AF_INET, SOCK_STREAM, 0)

2.客戶端:構(gòu)造通訊SOCKET,流式SOCKET.

SOCKET    Client _Sock   = socket(AF_INET, SOCK_STREAM, 0)

第三式:配置監(jiān)聽地址和端口:

1.服務(wù)端: SOCKADDR_IN

serverAddr
 ZeroMemory((char *)& serverAddr ,sizeof( serverAddr )); 
serverAddr .sin_family = AF_INET ; 

serverAddr .sin_port = htons( 1234 );     /*本地監(jiān)聽端口:1234*/ 

serverAddr .sin_addr.s_addr = htonl( INADDR_ANY ); /*有IP*/ 

第四式:  綁定SOCKET:

1.服務(wù)端:綁定監(jiān)聽SOCKET.

 bind( Listen_Sock, (struct sockaddr *)& serverAddr, sizeof( serverAddr ))

第五式: 服務(wù)端/客戶端連接:

1.服務(wù)端:等待客戶端接入.

SOCKET  Command_Sock  = accept( Listen_Sock , ...)

2.客戶端:請求與服務(wù)端連接.

int ret = connect( Client_Sock , ...)

第六式: 收/發(fā)數(shù)據(jù):

1.服務(wù)端:等待客戶端接入.char buf[1024].

接收數(shù)據(jù):recv( Command_Sock ,buf, ...)

發(fā)送數(shù)據(jù):send( Command_Sock ,buf, ...)

2.客戶端:請求與服務(wù)端連接.char buf[1024].

發(fā)送數(shù)據(jù):send( Client _Sock  ,buf, ...)

接收數(shù)據(jù):recv( Client _Sock  ,buf, ...)

第七式: 關(guān)閉SOCKET:

1.服務(wù)端:關(guān)閉SOCKET.

closesocket( Listen_Sock )

closesocket( Command_Sock )

2.客戶端:關(guān)閉SOCKET.

closesocket( Client_Sock ) 
 
#include <stdio.h>
#include <Winsock2.h>
void main()
{
 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 sockClient=socket(AF_INET,SOCK_STREAM,0);
 
 SOCKADDR_IN addrSrv;
 addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
 addrSrv.sin_family=AF_INET;
 addrSrv.sin_port=htons(6000);
 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
 send(sockClient,"hello",strlen("hello")+1,0);
 char recvBuf[50];
 recv(sockClient,recvBuf,50,0);
 printf("%s\n",recvBuf);
 
 closesocket(sockClient);
 WSACleanup();
}

上一篇:C語言實現(xiàn)查看進(jìn)程是否存在的方法示例

欄    目:C語言

下一篇:KMP 算法實例詳解

本文標(biāo)題:淺談C++ Socket編程

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1312.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有