python網路程式設計(TCP客戶端 伺服器端實現)

2021-07-07 03:57:38 字數 1839 閱讀 6350

下面的程式實現的功能:客戶端發來訊息,伺服器端加上時間戳返回給使用者

伺服器端:

from socket import *

from time import ctime

import os

print(os.getpid())

host=''

post=21567

bufsiz=1024

addr=(host,post)#這裡是配置套接字,比c語言的簡單多了,沒那麼多結構體

tcpserversocket=socket(af_inet,sock_stream)#建立服務端的套接字

tcpserversocket.bind(addr)#將位址與套接字繫結

tcpserversocket.listen(5)#然後就是監聽

try:

while

true:

tcpclientsocket,clientaddr=tcpserversocket.accept()#返回結果

print('...connected from :',clientaddr)

while

true:

data=tcpclientsocket.recv(bufsiz).decode()

ifnot data:

break

tcpclientsocket.send(('[%s] %s' % (ctime(),data)).encode())

print(data)

else:

tcpclientsocket.close()

except exception as e:

print(e)

finally:

tcpserversocket.close()

客戶端:

__author__ = 'qingjin'

from socket import *

host='172.18

.255

.236'

post=21567

bufsize=1024

addr=(host,post)

tcpclientsocket=socket(af_inet,sock_stream)

tcpclientsocket.connect(addr)

while

true:

data=input('>')

ifdata.lower()=='q':

break

tcpclientsocket.send(data.encode())

data=tcpclientsocket.recv(bufsize).decode()

if not data:

break

print(data)

tcpclientsocket.close()

在這裡遇到了幾個問題,說明一下,對以後也有幫助:

1.socket.gaierror: [errno 11001] getaddrinfo failed

這個其實就是主機位址格式不對

2.typeerror: 『str』 does not support the buffer inte***ce

這個就是要加上encode(string轉化成byte)和decode(相反)的原因

解決方法**:python 3中套接字程式設計中遇到typeerror: 『str』 does not support the buffer inte***ce的解決辦法

3.我本來想通過建立執行緒來處理客戶端的請求,發現os.fork()不能用,這個是在unix下用的,windows下沒有。

python網路程式設計 TCP網路程式設計

tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...

153 python網路程式設計 TCP客戶端

tcp的客戶端要比伺服器端簡單很多,如果說伺服器端是需要自己買手機 查手機卡 設定鈴聲 等待別人打 流程的話,那麼客戶端就只需要找乙個 亭,拿起 撥打即可,流程要少很多。示例 coding utf 8 from socket import 建立socket tcpclientsocket socke...

python網路程式設計之TCP客戶端開發

1.匯入套接字模組 import socket if name main 2.建立套接字 af init ipv4 sock stream tcp tcp client socket socket.socket socket.af inet,socket.sock stream 3.建立連線 tcp...