Python之TCP程式設計

2021-08-31 19:05:14 字數 1862 閱讀 5335

需要完成客戶端和伺服器端的連線,客戶端發給伺服器端訊息,伺服器接受訊息後加上「你好」再發給客戶端。如果客戶端傳送了退出字串,直接關閉連線。

#伺服器端

import socket

import threading

import time

def socket_server():

#建立socket物件

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

#獲取本地主機名

host="127.0.0.1"#監聽的ip,host=''就是監聽所有的ip

port=9998

#繫結埠

server_socket.bind((host,port))

#設定最大連線數,超過後排隊

server_socket.listen(5)

while true:

#接受乙個新的連線

sock,addr=server_socket.accept()

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

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

t.start()

def tcp_link(sock,addr):

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

sock.send("歡迎學習python網路程式設計!".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,%s!'%data.decode('utf-8')).encode('utf-8'))

sock.close()

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

def main():

socket_server()

if __name__=='__main__':

main()

#客戶端

import socket

def socket_client():

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

host="127.0.0.1"#客戶端自己的ip

port=9998

#建立連線

s.connect((host,port))

#接受歡迎訊息

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

for data in ['小萌','小智','小強']:

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

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

s.send(b'exit')

s.close()

def main():

socket_client()

if __name__=='__main__':

main()

客戶端:

伺服器端:

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