用C和python實現Socket通訊

2021-10-14 15:08:15 字數 985 閱讀 9923

當伺服器和客戶機都用同一種語言編寫時,我可以讓它們協同工作(即兩者都用c語言編寫,或者兩者都用python編寫),但我不能讓它們在c語言中與伺服器和python中一起工作。目前,我想從c伺服器向python客戶機傳送乙個簡單的字串。在伺服器sendall()在c中的實現如下(引用自beej的指南):

int

sendall

(int socket,

char

* buf,

int*len)

total +

= n;

bytesleft -

= n;

}*len = total;

// return number actually sent here

return n==-1

?-1:

0;// return -1 on failure, 0 on success

}

python中的client recvall()實現

def

recv_one_message

(sock)

: lengthbuf = recvall(sock,4)

length,

= struct.unpack(

'!i'

, lengthbuf)

return recvall(sock, length)

defrecvall

(sock, count)

: buf =

''while count:

newbuf = sock.recv(count)

print newbuf

ifnot newbuf:

return

none

buf += newbuf

count -=

len(newbuf)

return buf

文章參考:

用多執行緒實現多使用者同時收發的簡單socket服務端

簡單的socket 和多執行緒練習 用socket服務端和多執行緒實現可以連線多個客戶端並同時收發的功能。這裡要用到socket 和 threading 所以,記得 import socket,threading 一 建立socket服務端 首先,按正常操作,建立乙個socket,選擇ipv4和資料...

Python用List實現棧和佇列

class stack def init self self.items 初始化乙個列表 defis empty self 如果為空則返回true 否則返回false return self.items defpop self try return self.items.pop except rai...

用python實現SYN Flooding攻擊

作業裡的 直接這裡copy在這裡記錄一下。在tcp ip協議中,當客戶端試著與伺服器間建立tcp連線時,正常情況下客戶端與伺服器端進行tcp三次握手 1.客戶端通過傳送syn同步 synchronize 資訊到伺服器要求建立連線。2.伺服器通過響應客戶端syn ack以抄收 acknowledge ...