請教如何使用python的socket傳送二進位制資料

2023-01-09 16:20:14 字數 4607 閱讀 9558

1樓:

客戶端clt.py

# coding: utf8

import socket

host = '192.168.1.101'

port = 12008

def send_data(data):

try:

sock_clt = socket.socket(socket.af_inet, socket.sock_stream)

sock_clt.connect((host, port))

sock_clt.send(data)

finally:

sock_clt.close()

while true:

send_data('你的二進位制資料')

服務端svr.py

# coding: utf8

import socket

host = ''

port = 12008

size = 4096

sock_svr = socket.socket(socket.af_inet, socket.sock_stream)

# python socket server重啟後,埠被佔用的解決方法

sock_svr.setsockopt(socket.sol_socket,socket.so_reuseaddr, 1)

sock_svr.bind((host, port))

sock_svr.listen(1)

while true:

print "waiting of the client to connect"

clt_conn_sock, addr = sock_svr.accept()

print 'connected by', addr

comp_data = ''

while true:

data = clt_conn_sock.recv(size)

if not data:

break

comp_data += data

clt_conn_sock.close()

if not comp_data:

continue

print comp_data

服務端可以使用socket的select或poll,也可以使用twisted

2樓:螞蟻學

python使用tensorflow讀取csv資料訓練dnn深度學習模型

如何用python處理從網路socket讀取出來的二進位制資料流

3樓:螞蟻學

python使用tensorflow讀取csv資料訓練dnn深度學習模型

python3 socket的send方法如何傳送資料 5

4樓:扈思雨

用如下**:

name='bruce'

s.send(b'hihi'+name.encode())要把name變成二進位制才能拼接望採納

5樓:愛笑的風隱

可以將name中的內容解碼為utf-8,我的建議是s.send(b'hihi'+name.encode('utf-8')),望採納

6樓:匿名使用者

這個跟socket沒關係啊。

你的name和b'hihi'這兩個字串,應該要麼都是str要麼都是bytes

python如何使用socket來傳輸物件

7樓:

import socket

import struct

sock = socket.socket(socket.af_inet, socket.sock_stream)

sock.connect(('localhost', 10000))values = (1, 'ab', 2.7)packer = struct.

struct('i 2s f')packed_data = packer.pack(*values)try:

sock.sendall(packed_data)finally:

sock.close()

有個模組叫struct,可以自定義結構體,可以這樣傳送**。

try:

import cpickle as pickleexcept:

import pickle

class aa():

def a(self):

print "123"

ddd = aa()

data = pickle.dumps(ddd)還有個模組叫pickle,可以打包任何python物件,打包的結果也可以拿到套接字裡發。

8樓:自由de王國

可以轉換為字串,比如反引號或者repr函式,由字串變成物件,可以用eval函式

python socket 的rev函式怎麼接收位元組陣列

9樓:愛染年

import socketimport structsock = socket.socket(socket.af_inet, socket.

sock_stream) sock.connect(('localhost', 10000))values = (1, 'ab', 2.7)packer = struct.

struct('i 2s f')packed_data = packer.pack(*values)try: sock.

sendall(packed_data)finally: sock.close()有個模組叫struct,可以自定義結構體,可以這樣傳送**。

try: import cpickle as pickleexcept: import pickleclass aa():

def a(self): print "123"ddd = aa()data = pickle.dumps(ddd)還有個模組叫pickle,可以打包任何python物件,打包的結果也可以拿到套接字裡發。

python中使用socket程式設計,如何能夠通過udp傳遞一個列表型別的資料?

10樓:

python中的 list 或者 dict 都可以轉成json字串來傳送,接收後再轉回來。

首先import json

然後,把 list 或 dict 轉成 json

json_string = json.dumps(list_or_dict)

如果你用的是python3,這裡的 json_string 會是 str 型別(即python2的unicode型別),可能需要編碼一下:

if type(json_string) == six.text_type:

json_string = json_string.encode('utf-8')

用socket傳送過去,例如

s.sendto(json_string, address)

對方用socket接收,例如

json_string, addr = s.recvfrom(2048)

把json轉成 list 或 dict

list_or_dict = json.loads(json_string)

下面是個完整的例子:

client.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import socket

import json

import six

address = ('127.0.0.1', 31500)

s = socket.socket(socket.af_inet, socket.sock_dgram)

mylist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

json_string = json.dumps(mylist)

if type(json_string) == six.text_type:

json_string = json_string.encode('utf-8')

s.sendto(json_string, address)

s.close()

server.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import socket

import json

address = ('127.0.0.1', 31500)

s = socket.socket(socket.af_inet, socket.sock_dgram)

s.bind(address)

json_string, addr = s.recvfrom(2048)

mylist = json.loads(json_string)

print(mylist)

s.close()

請先執行server.py,再執行client.py

11樓:凌雲小紫冥

udp不適合傳輸很大的資料包。

如何使用python解析超大ml

超大 xml 文件在哪呢?python解析xml檔案如何讀取所有標籤的內容?求大神指教 如何用python讀取xml檔案中指定標籤的文件內容並將其修改?最好寫下詳細 非常感謝哈!使用python自帶的elementtree模組,給你個例子你就知道了 xml文件 0e python python 修改...

python如何使用re模組的sub函式實現把一串字母或者數字組合的字串,全部替換成

w沒有加引號 print re.sub w string3 python 正規表示式如何擷取字串中間的內容 啟動ipython先匯入re模組 這裡我用到了findall全域性匹配,分為兩部分,前面是正則,後面是要匹配的字串 得到一個元祖 通過變數a 就能列印出想要的字串 在 python 中,我們可...

python下使用openCV3,如何在一幅灰度圖中,為所有

1 可以變成灰度圖也可以不變。這裡假設你的影象都是ipl depth 8u型別。2 如果變成灰度圖,就是單通道影象,獲取的就是每一個畫素點的灰度值。iplimage img cvloadimage test.bmp 0 for int i 0 i img height i 3 如果不變成灰度圖,就是...