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...