日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python局域网聊天

發布時間:2024/1/1 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python局域网聊天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python 提供了兩個級別訪問的網絡服務。:
1.低級別的網絡服務支持基本的 Socket,它提供了標準的 BSD Sockets API,可以訪問底層操作系統Socket接口的全部方法。
2.高級別的網絡服務模塊 SocketServer, 它提供了服務器中心類,可以簡化網絡服務器的開發。

套接字的創建語法

socket.socket([family[, type[, proto]]])

family: 套接字家族可以使AF_UNIX或者AF_INET
type: 套接字類型可以根據是面向連接的還是非連接分為SOCK_STREAM或SOCK_DGRAM
protocol: 一般不填默認為0.

我用低級別的網絡服務做了一個python的局域網的聊天,只是控制臺的簡單聊天,還要升級為一個GUI的聊天
首先,我們聊天就需要一個服務器,有服務器就能聊天,稱為服務套接字

import socket import threading #創建服務套接字 ss = socket.socket(socket.AF_INET,socket.SOCK_STREAM) print("建立服務套接字") ss.bind(("0.0.0.0",8888))#服務套接字綁定端口號,綁定主機 #ss.bind(("0.0.0.0"(localhost是本機)是廣域網,也可用作局域網,端口,避免與本電腦其他端口相同)) print("綁定端口和主機") ss.listen(5)#控制聊天人數 #接受客戶套接字 print("開始等待客戶的請求") c = ss.accept()#線程阻塞 print("某個客戶鏈接到我了") # mag=c[0].recv(1024) # print("mag:",mag.decode())#decode()解碼,接收的數據解碼 # c[0].send("是".encode()) #線程 函數 def myrevc(c):while True:msg = c.recv(1024)#當沒有消息的時候休息,阻塞print(msg.decode()) threading._start_new_thread(myrevc,(c[0],)) while True:msg = input()c[0].send(msg.encode())

這個服務器建造好了就差客戶端了,具體注意的都加在代碼里的注釋里了。接下來需要客戶套接字了。

import socket import threading #創建客戶套接字 u = socket.socket(socket.AF_INET,socket.SOCK_STREAM) print("創建客戶套接字") u.connect(("192.168.66.180",9999))#鏈接對方不成功拋出異常 #這里是與服務器對應的,需要對應的ip和端口, print("我已連接到服務") # u.send("你是曉敏嗎?".encode())#encode()編碼 # mag=u.recv(1024) # print(mag.decode()) def myrevc(c):while True:msg = c.recv(1024)#當沒有消息的時候休息,阻塞print(msg.decode()) threading._start_new_thread(myrevc,(u,)) while True:print("輸入")msg = input()u.send(msg.encode())

簡單的局域網聊天就完成了。

總結

以上是生活随笔為你收集整理的python局域网聊天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。