Python基礎 TCP程式設計

2021-08-03 03:43:19 字數 1888 閱讀 7722

tcp的基本概念就不錯說了,主要介紹一下python的socket使用。

需要繫結乙個埠並開始監聽其他客戶端連線。

import socket

import threading

defthread_fun

(sock,addr):

print('accept new client from %s:%s' % (sock, addr))

sock.send('hello'.encode('utf-8'))

while

true:

try:

data = sock.recv(1024)

ifnot data or data.decode('utf-8') == 'quit':

break

#接受到 加個頭返回去

sock.send(('hello %s' % data.decode('utf-8')).encode('utf-8'))

except oserror:

print('client close %s:%s' % (sock, addr))

return

none

print('client %s:%s quit' % (sock, addr))

sock.close()

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

s.bind(('127.0.0.1', 10000)) #繫結乙個ip和埠

s.listen(5) #監聽佇列長度為5

print('server run waiting for connection...')

while

true:

try:

#等待乙個新連線

sock, addr = s.accept()

#建立執行緒處理連線

thread = threading.thread(target=thread_fun, args=(sock,addr))

thread.start()

except oserror:

pass

import socket

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

# 建立連線

s.connect(('127.0.0.1', 10000))

# 接受伺服器訊息

print(s.recv(1024).decode('utf-8'))

for data in [b'bob', b'jack', b'rose']:

# 傳送資料

s.send(data)

print(s.recv(1024).decode('utf-8'))

s.send(b'quit')

列印訊息如下

#客戶端

hello

hello bob

hello jack

hello rose

#伺服器

server run waiting for connection...

accept new client from

:('127.0.0.1', 51335)

client :('127.0.0.1', 51335) quit

用tcp協議進行socket程式設計在python中十分簡單,對於客戶端,要主動連線伺服器的ip和指定埠,對於伺服器,要首先監聽指定埠,然後,對每乙個新的連線,建立乙個執行緒或程序來處理。通常,伺服器程式會無限執行下去。

同乙個埠,被乙個socket繫結了以後,就不能被別的socket繫結了。

tcp網路程式設計基礎

1.tcp客戶端 from socket import 建立socket tcp client socket socket af inet,sock stream 目的資訊 server ip input 請輸入伺服器ip server port int input 請輸入伺服器port 鏈結伺服器...

TCP網路程式設計基礎

1 套接字結構 struct sockaddr 上述結構中協議族成員變數sa family的型別是sa family t,其實這個型別是unsigned short型別,因此成員變數sa family的長度為16位。typedef unsigned short sa family t 通用套接字結構...

python網路程式設計 TCP

一 網路通訊模式 對於網路通訊,現在遵循的是tcp ip協議組。而現在設計的通訊模式中,主要使用的是客戶端 伺服器程式設計,所謂的客戶端就是我們使用者所用的軟體,而服務端則是程式開發人員根據客戶端的需要設計的服務模式,為了是滿足客戶端的要求,實現和客戶端進行正常通訊。二 套接字 通訊的端點 對於tc...