socket通訊的簡單實現(C)

2021-09-11 10:37:08 字數 3090 閱讀 7049

服務端多執行緒版本**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define server_port 9002

// 判斷是否被占用 netstat -an | grep 9001

#define length_of_listen_queue 10

// 監聽客戶端鏈結數量

void

handle_client_connect

(void

*new_server_socket)

;int

main()

close

(server_socket)

;return0;

}void

handle_client_connect

(void

*new_server_socket)

printf

("recv from client:[%s]\n"

,recvbuf);}

close

(cli_socket)

;pthread_exit

(null

);

服務端**:

#include

#include

// socket()

#include

// socket() bind() listen() accept() recv()

#include

// htons() htonl()

#include

// strerror()

#include

// errno

#include

// close()

#include

// exit()

#define server_port 9001

// 檢測是否被占用 netstat -an | grep 9001

#define max_connect_num 10

// 最大連線數

#define recv_length 1024

// recv 接收的位元組數

intmain()

// listen()

ret =

listen

(server_socket, max_connect_num);if

(-1== ret)

// accept()

char recvbuf[recv_length]

;memset

(recvbuf,

0x00

,sizeof

(recvbuf));

while(1

)printf

("client connnect success...\n");

int length =

recv

(new_server_socket, recvbuf, recv_length,0)

; recvbuf[length]

='\0'

;printf

("client:[%s]\n"

, recvbuf)

;close

(new_server_socket);}

// close()

close

(server_socket)

;return0;

}

客戶端**:

#include

#include

// socket()

#include

// socket() connect() send() close()

#include

// inet_pton()

#include

// strerror

#include

// errno

#include

// exit()

#define server_port 9001

// 服務端埠號

intmain()

ret =

connect

(client_socket,

(struct sockaddr *

)&client_in,

sizeof

(client_in));

if(ret <0)

// send()

char sendbuf[

1024];

memset

(sendbuf,

0x00

,sizeof

(sendbuf));

printf

("client input:\n");

gets

(sendbuf)

;int in_length =

strlen

(sendbuf)

; sendbuf[in_length]

='\0'

; ret =

send

(client_socket, sendbuf,

1024,0

);if(ret <0)

// close()

close

(client_socket)

;return0;

}

makefile:

cc=cc

all:server client

cleanlist=server client *.o

server:server.o

[email protected] -o $@

client:client.o

[email protected] -o $@

clean:

rm -f $

php簡單實現socket通訊

socket通訊的原理在這裡就不說了,它的用途還是比較廣泛的,我們可以使用 socket 來做乙個 api介面出來,也可以使用 socket 來實現兩個程式之間的通訊,我們來研究一下在 php開發 中如何實現socket通訊。由於socket服務端的 要監聽埠,等待接收請求,所以 php在做 soc...

epoll實現簡單socket通訊

epoll是常用的socket通訊方式,相比於select和poll來說,效率提公升了不止一點半點 其一 select中socket描述符 檔案描述符 集的資料結構為陣列,poll的檔案描述符集資料結構為鍊錶,無論陣列還是鍊錶,它們都是線性結構,當遍歷時,也只能線性遍歷 而epoll檔案描述符集採用...

Socket實現簡單的聊天通訊

最近學習了socket後,感覺socket挺好玩的,在部落格中看到socket在實時聊天功能的很強大,於是乎就做了乙個簡單的聊天功能,今天貼出來,能夠與大家一起共享,有不對之處,能夠給予指出,謝謝!伺服器中的 using system using system.collections.generic...