from socket import *
import os,sys
#傳送訊息
def send_msg(s,name,addr):
while true:
text = input("發言:")
if text == 'quit':
msg = 'q ' + name
s.sendto(msg.encode(),addr)
sys.exit("退出聊天室")
msg = "c %s %s"%(name,text)
s.sendto(msg.encode(),addr)
#接受訊息
def recv_msg(s):
while true:
data,addr = s.recvfrom(2048)
#接收伺服器發來的退出標誌後退出該程序
if data.decode() == 'exit':
sys.exit(0)
print(data.decode()+'\n發言:',end="")
#建立套接字
def main():
#從命令列輸入伺服器位址
if len(sys.argv) < 3:
print("argv is error")
return
host = sys.argv[1]
port = int(sys.argv[2])
addr = (host,port)
#建立套接字
s = socket(af_inet,sock_dgram)
while true:
name = input("請輸入姓名:")
msg = "l " + name
#傳送給服務端
s.sendto(msg.encode(),addr)
#等待回應
data,addr = s.recvfrom(1024)
if data.decode() == 'ok':
print("您已進入聊天室")
break
else:
print(data.decode())
#建立父子程序
pid = os.fork()
if pid < 0:
sys.exit("建立程序失敗")
elif pid == 0:
send_msg(s,name,addr)
else:
recv_msg(s)
if __name__ == "__main__":
main()
Java 入門 之 聊天室專案思路 客戶端
專案思路 1.客戶端啟動 啟動客戶端管理程式,呼叫初始化客戶端介面 2.客戶端管理 成員 客戶端視窗,輸入流,輸出流,套接字,伺服器ip 採用單例模式實現客戶端管理類。客戶端界初始化模組 顯示歡迎介面 客戶端資訊傳送模組 將本地的字串傳遞給與套接字繫結的輸入流並重新整理輸入流緩衝區 客戶端網路連線模...
聊天室 Python作為伺服器C 作為客戶端
1.有登入介面等各種介面 2.客戶端和伺服器能進行簡單通訊 3.群聊 聊天內容加密,名字 內容 4.一對一聊 給指定客戶端發訊息 5.登入 登入到已註冊資料庫 6.註冊 資料庫中新增使用者 7.資料庫 伺服器和資料庫互動,pymysql 連線到資料庫 8.新增好友 新增已經註冊使用者為好友 9.搜尋...
mysql 聊天室 聊天室php mysql 六
聊天室php mysql 六 相應的 資料庫 phpmyadmin mysql dump 主機 localhost 3306 資料庫 study28 資料表的結構 chat user create table chat user userid varchar 20 not null,passwd v...