c 實現網路程式設計

2021-06-12 09:56:35 字數 1762 閱讀 3911

服務端程式的編寫

1. 建立套接字(socket)

2. 將套接字繫結到乙個本地位址和埠上.(bind)

3. 將套接字設為監聽模式,準備接收客戶請求(listen).

4. 等待客戶請求到來,當請求到來後,接收連線請求,返回乙個新的對應於此次連線的套接字(accept).

5. 用返回的套接字和客戶端進行通訊(send/recv)

6. 返回等待另乙個客戶請求.

7. 關閉套接字

如下是服務端程式的**:

#include "windows.h"

#include "winsock.h"

#include "stdio.h"

#pragma comment(lib,"ws2_32.lib")

void main()

if ( lobyte( wsadata.wversion ) != 2 || hibyte( wsadata.wversion ) != 2 )

//建立套接字

socket socksrv = socket(af_inet,sock_stream,0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr=inaddr_any;

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);

//將套接字繫結到乙個本地位址和埠上

bind(socksrv,(sockaddr*)&addrsrv,sizeof(sockaddr));

listen(socksrv,5);

sockaddr_in addrclient;

int len=sizeof(sockaddr);

while(1)

}客戶端程式的編寫

1、 建立套接字(socket)。

2、 向伺服器發出連線請求(connect)。

3、 和伺服器進行通訊(send/recv)。

4、 關閉套接字。

如下是客戶端程式的原始碼:

#include "winsock2.h"

#include "windows.h"

#include "stdio.h"

#pragma comment(lib,"ws2_32.lib")

void main()

if ( lobyte( wsadata.wversion ) != 2 || hibyte( wsadata.wversion ) != 2 )

//建立套接字

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));

//接收資料

char recvbuf[100];

recv(sockclient,recvbuf,100,0);

printf("%s\n",recvbuf);

//客戶端傳送資料

send(sockclient,"我是你的娘啊!",strlen("我是你的娘啊!")+1,0);

C 網路程式設計

首先我們解釋一下在網路程式設計時候,經常遇到的幾個概念 同步 synchronous 非同步 asynchronous 阻塞 block 和非阻塞 unblock 所謂同步方式,就是傳送方傳送資料報以後,不等接受方響應,就接著傳送下乙個資料報。非同步方式就是當傳送方傳送乙個資料報以後,一直等到接受方...

C 網路程式設計

1 ip網路中的每台主機都有乙個ip位址 它是邏輯位址 網際網路上的ip位址具有全球唯一性 4個位元組,192.168.0.16 2 osi將網路分為 tcp ip模型 應用層 應用層 表示層會話層 傳輸層 傳輸層 網路層 網路層 資料鏈路層 網路介面 物理層相同層次之間不可以直接通訊,是虛擬通訊。...

c 網路程式設計

microsoft.framework為應用程式訪問inter 提供了分層的 可擴充套件的以及受管轄的網路服務,其名字空間system.和system.sockets包含豐富的類可以開發多種網路應用程式。類採用的分層結構允許應用程式在不同的控制級別上訪問網路,開發人員可以根據需要選擇針對不同的級別編...