socket通訊實現

2021-10-03 17:32:21 字數 2677 閱讀 3021

為了實現socket的通訊驗證,寫了乙個簡單的客服端向伺服器端通訊的**

伺服器端:

1、版本驗證

word wversionrequested=

makeword(2

,2);

wsadata result;

int err =

wsastartup

(wversionrequested,

&result);if

(err !=0)

if(lobyte

(result.wversion)!=2

||hibyte

(result.wversion)!=2

)

2、生成socket

socket ser_sock =

socket

(af_inet, sock_stream, ipproto_tcp);if

(invalid_socket == ser_sock)

3、套接字繫結

struct sockaddr_in ser_addr;

memset

(&ser_addr,0,

sizeof

(ser_addr));

ser_addr.sin_family = af_inet;

ser_addr.sin_addr.s_addr =

inet_addr

("192.168.1.104");

ser_addr.sin_port =

htons

(10000);

//埠轉為大端位元組序

int back=

bind

(ser_sock,

(sockaddr*

)&ser_addr,

sizeof

(ser_addr));

if(socket_error == back)

4、監聽連線及接收;接受失敗即關閉

//監聽

int re =

listen

(ser_sock,10)

;if(socket_error == re)

//接收

printf

("等待連線。。。。\n");

socket jie =

accept

(ser_sock,

null

,null);

if(invalid_socket == jie)

printf

("連線成功!\n"

);

5、通訊

char buff[

1024];

while(1

)}

客戶端:

幾乎流程與上述相同只是不需要繫結、監聽,接受步驟,直接改為連線和通訊

**實現:

word wversionrequested =

makeword(2

,2);

wsadata result;

int err =

wsastartup

(wversionrequested,

&result);if

(err !=0)

if(lobyte

(result.wversion)!=2

||hibyte

(result.wversion)!=2

)//生成套接字

socket cli_sock =

socket

(af_inet, sock_stream, ipproto_tcp);if

(invalid_socket == cli_sock)

//裝置資訊

struct sockaddr_in ser_addr;

memset

(&ser_addr,0,

sizeof

(ser_addr));

ser_addr.sin_family = af_inet;

ser_addr.sin_addr.s_addr =

inet_addr

("192.168.1.104");

ser_addr.sin_port =

htons

(10000);

//埠轉為大端位元組序

//連線

int co =

connect

(cli_sock,

(sockaddr*

)&ser_addr,

sizeof

(ser_addr));

printf

("正在建立連線。。。。。\n");

if(socket_error == co)

printf

("連線成功!\n");

//通訊

socket通訊例項 GUI

效果展示 專案 客戶端 public class client extends jframe implements runnable catch ioexception e 判斷連線是否建立 if socket.isconnected 初始客戶端 private void initclient 訊息...

原 socket通訊實現網域名稱解析

extern unsigned char gsntpserverip 20 int getntptime unsigned char ntpserverip,unsigned int ntpport,unsigned int data sockfd socket af inet,sock dgram...

socket的簡單通訊例項

分為服務端和客服端,先看服務端吧 做乙個控制台程式,using system using system.collections.generic using system.text using system.net using system.net.sockets namespace socket r...