Python的TCP程式設計

2022-08-22 05:00:17 字數 1647 閱讀 9107

目錄

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

import socket

import threading

import time

# 每個連線都必須建立新執行緒(或程序)來處理,否則,

# 單執行緒在處理連線的過程中,無法接受其他客戶端的連線

def tcplink(sock, addr):

print('accept new connection from %s:%s...' % addr)

sock.send(('welcome!').encode('utf-8'))

while true:

data = sock.recv(1024)

time.sleep(1)

if not data or data.decode('utf-8') == 'exit':

break

sock.send(('hello, client user %s.' %

data.decode('utf-8')).encode('utf-8'))

sock.close()

print('connection from %s:%s closed.' % addr)

# 建立乙個socket

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

# 監聽埠

s.bind(('127.0.0.1', 8080))

# 配置等待連線的最大數量

s.listen(5)

print('waiting for connection...')

while true:

# 接受乙個新連線(等待並返回乙個客戶端的連線)

sock, addr = s.accept()

# 建立新執行緒來處理tcp連線

t = threading.thread(target=tcplink, args=(sock, addr))

t.start()

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

import socket

import threading

import time

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

# 建立連線

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

# 接收歡迎訊息

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

# 傳送資料

for data in [('aaa').encode('utf-8'), ('bbb').encode('utf-8')]:

s.send(data)

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

s.send(('exit').encode('utf-8'))

s.close()

啟動服務端
python server.py
啟動客戶端
python client.py
注意:客戶端程式執行完畢就退出了,而伺服器程式會永遠執行下去,必須按ctrl+c退出程式

python網路程式設計 TCP

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

TCP程式設計 python實現

tcp是乙個面向連線的協議。這意味著客戶和伺服器要先握手和建立乙個tcp連線,才能互相傳送資料。在建立這個連線時,客戶端通過套接字位址 ip和埠號 和伺服器的套接字位址 ip和埠號 關聯起來。然後,在之後的通訊中,伺服器和客戶端如果要傳送資料,直接把資料交給套接字就可以進行傳送。與之相對的時udp,...

Python基礎 TCP程式設計

tcp的基本概念就不錯說了,主要介紹一下python的socket使用。需要繫結乙個埠並開始監聽其他客戶端連線。import socket import threading defthread fun sock,addr print accept new client from s s sock,a...