服務端程式的編寫
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包含豐富的類可以開發多種網路應用程式。類採用的分層結構允許應用程式在不同的控制級別上訪問網路,開發人員可以根據需要選擇針對不同的級別編...