Python實現最簡單的雙人聊天程式

2021-08-01 01:13:45 字數 2343 閱讀 2781

程式分為伺服器端和客戶端,兩者都是基於tcp協議來進行通訊的。

1、伺服器端

#coding:utf-8

#匯入相關包

import socket

import sys

import time

isotimeformat=

'%y-%m-%d %x'

#時間格式

host=

''#本機ip

port=

8888

#埠號

#建立流式套接字

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

#設定埠復用

s.setsockopt(socket.sol_socket,socket.so_reuseaddr,1)

#繫結(ip,port)

s.bind(

(host,port)

)#監聽套接字

s.listen(5)

print

'runing...'

#接受客戶端連線

clientsock,clientaddr=s.accept(

)print

'%s connected.'%(

str(clientaddr)

)while1:

try:

#接收訊息

buf=clientsock.recv(

1024)if

len(buf)

:#訊息長度大於0則輸出

print

"he say: "

+buf

data=

raw_input

("i say: "

)#等待使用者控制台輸入

#格式化當前時間

send_time=time.strftime(isotimeformat,time.localtime())

#傳送訊息

clientsock.sendall(data+

'[%s]'

%(send_time)

)except

:print

"dialogue over"

clientsock.close(

)#關閉套接字

sys.exit(0)

#退出程式

2、客戶端

#coding:utf-8

#匯入相關包

import socket

import sys

import time

isotimeformat=

'%y-%m-%d %x'

#時間格式

host=

'127.0.0.1'

#本機位址

port=

8888

#建立流式套接字

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

try:

#連線套接字

s.connect(

(host,port)

)except socket.gaierror,e:

print

"address-related error connecting to server:%s"

%e # 1表示非正常退出程式,退出程式是告訴直譯器(os)的

sys.exit(1)

except socket.error,e:

print

"connection error:%s"

%e sys.exit(1)

while1:

try:

#等待使用者控制台輸入

data=

raw_input

("i say: "

)#傳送訊息的時間

send_time=time.strftime(isotimeformat,time.localtime())

#向伺服器傳送訊息

s.send(data+

'[%s]'

%(send_time)

)#從伺服器接收訊息

buf=s.recv(

1024)if

len(buf)

:#訊息長度大於0則輸出

print

"he say: "

+buf

except

:#異常處理

print

"dialogue over"

s.close(

)#關閉套接字

sys.exit(0)

#0表示正常退出程式

最簡單的IdentityServer實現 Api

建立asp.net core web api專案identityserver.easydemo.api 2引用identityserver4.accesstokenvalidation 3新增介面檔案identitycontroller.cs,用於測試授權 如果你直接訪問http localhost...

python最簡單的語言 python語言很簡單麼

在知乎看到提問 為什麼很多人都說 python 簡單?關於這門簡單的語言,它到底簡單在 下面,分享下經驗吧。關於python的入門書籍很多,這是它簡單的原因之一。30天學會xx程式語言 這一類的書籍雖然飽受詬病,但對於初學者來說還是不二之選。尤其是對於從未接觸過程式設計的初學者來說,是極其重要的。這...

tensoflow實現最簡單的分類

import numpy as np import tensorflow as tf import random import pickle from collections import counter import nltk from nltk.tokenize import word toke...