基於TCP協議之socket編程

#服務端
#導入一個socket模塊
import socket

#想象成買手機打電話:socket.SOCK_STREAM 表示創建tcp鏈接 ,udp鏈接socket.SOCK_DGRAM
#買了個手機
# 獲取tcp/ip套接字
soc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#插電話卡:綁定ip地址  傳元組:(ip,端口號)
soc.bind(('192.168.11.254',8080))  #若是寫本機ip,局域網外部能夠訪問
# 監聽對方打電話
soc.listen(5)
#等待別人給我打電話
conn,addr=soc.accept()
# conn 就是通路
#接收1024個字節
data=conn.recv(1024)
print('我收到用戶端發的',data.upper())      #轉換爲大寫
#conn.send  發送數據,數據必須是bytes格式
conn.send(bytes(data.upper()))

#掛斷電話
conn.close()
#銷燬手機
soc.close()



#用戶端
import socket
#建立一個socket對象
soc=socket.socket()
#鏈接服務端
soc.connect(('192.168.11.254',8080))
#發送消息
soc.send(b'Zhaoliang_DA_Sao_B')

data=soc.recv(1024)
print('我收到服務端回的',data)
#關閉鏈接
soc.close()

報錯結果以下:
Traceback (most recent call last):
  File "E:/Python   jieshiqi/9月份練習/9月5日/網絡協議/測試服務端01.py", line 11, in <module>
    soc.bind(('192.168.11.254',8080))  #若是寫本機ip,局域網外部能夠訪問
OSError: [WinError 10049] 在其上下文中,該請求的地址無效。

報錯緣由是每次網線鏈接都會產生新的IP地址,形成IP地址衝突,查看新的IP地址把舊的IP更換掉就能夠解決這個問題
相關文章
相關標籤/搜索