欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python聊天程序实例代码分享

程序员文章站 2022-04-06 15:14:49
代码简单,直接看代码吧:复制代码 代码如下:import socketimport threadingimport re#import tkinter def ser()...

代码简单,直接看代码吧:

复制代码 代码如下:

import socket
import threading
import re
#import tkinter

def ser():
    s=socket.socket(socket.af_inet,socket.sock_stream)
    s.bind(('',33333))
    s.listen(1)
    conn,addr=s.accept()
    while true:
        print '[%s:%d] send a message to me: %s'%(addr[0],addr[1],conn.recv(1024))
    s.close()

def clt():
    c=socket.socket(socket.af_inet,socket.sock_stream)
    ip_pattern=re.compile(r'^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$')
    while true:
        ip=raw_input('input the server\'s ipv4 address:')
        ip_match=ip_pattern.match(ip)
        if ip_match:
            break
    c.connect((ip,33333))
    while true:
        sms=raw_input('input the message you want to send:')
        c.sendall(sms)
    c.close()

if __name__=="__main__":
    ser=threading.thread(target=ser)
    clt=threading.thread(target=clt)
    ser.start()
    clt.start()
    ser.join()
    clt.join()