猫史档案馆


兄弟们,兄弟们,python新论坛!!!

用户:苹果真好吃苹果真好吃查看:37 回复:8 评论:37 创建时间:2024-01-30T21:36:24


里面任何一个值都不要改,直接运行(海龟一般不会提示安装库),服务器(我本人的电脑)14:00到晚上9:00开启(现在还在开),快进来看看!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

import os
import uuid
import time
import threading
from socket import *
from tkinter import *

serverName = '192.168.2.65'#服务器外网IP
serverPort = 1

root = Tk()
root.title('聊天室')

text = Text(root,width = 100,height = 20)

scroll = Scrollbar(root)
scroll.pack(side = RIGHT,fill = Y)
scroll.config(command = text.yview)
text.config(yscrollcommand = scroll.set)
text.pack()

entry = Entry(root,bd = 5,width = 70)
entry.pack(side = LEFT)
entry2 = Entry(root,bd = 5,width = 20)

clientSocket = socket(AF_INET, SOCK_STREAM)
print('正在连接...')
clientSocket.connect((serverName,serverPort))
print('连接成功!')

msg = clientSocket.recv(2048)#先接收历史记录

if msg.decode() != 'NO_MESSAGE':#有历史记录时
    text.insert(END,msg.decode() + '\n----以上是历史记录----\n')
text.see(END)

def get_mac_address():#由于用户名可以随时换,用MAC地址作为标识了
    mac = uuid.UUID(int = uuid.getnode()).hex[-12:]
    return ':'.join([mac[e:e+2] for e in range(0,11,2)])

def timemark():
    timestamp = int(time.time())
    timestr = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timestamp))
    return '[' + timestr + ']'

def send():
    if entry2.get().replace(' ','') == '':
        text.config(state = 'normal')
        text.insert(END,'请输入用户名!\n')
        text.see(END)
        text.config(state = 'disabled')
        return
    if entry.get() == '':
        text.config(state = 'normal')
        text.insert(END,'发送内容不能为空!\n')
        text.see(END)
        text.config(state = 'disabled')
    else:
        clientSocket.send((timemark() + ' ' + get_mac_address() + ' - ' +
                           entry2.get() + '\n    ' + entry.get()).encode())
        entry.delete(0,'end')

button = Button(root,text = 'SEND',command = send)
button.pack(side = RIGHT)

entry2.pack(side = RIGHT)
class myThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
    def run(self):
        while True:
            msg = clientSocket.recv(2048)
            text.config(state = 'normal')
            text.insert(END,msg.decode() + '\n')
            text.see(END)
            text.config(state = 'disabled')
textThread = myThread()
textThread.start()

root.mainloop()


回复

上一页1 页 / 共 1下一页
iOrangesoftiOrangesoft

ok,火速来测试

点赞0


评论


苹果真好吃苹果真好吃

打开之后下面左边是发送的信息,中间是发送人,右边send是发送

点赞0


评论


苹果真好吃苹果真好吃

乌鲁木齐市可以直接连接

点赞0


评论


森林之喵a森林之喵a

这是什么

点赞0


评论


苹果真好吃苹果真好吃

一共有2次IP地址变更,将第7行绿色部分改为192.168.31.171,从明天15:00开始开启24h不间断服务

点赞0


评论


jczzcjczzc

哥们儿要是能看到的话可以看看我github的开源代码 https : // github. com /jczzc2 /CTSever-Re 看一看

点赞0


评论


一个STUB用户_7236882一个STUB用户_7236882

能不能给你打了

点赞0


评论


owugi7s6owugi7s6

话说你电月㐫当月㞋务器❓

点赞0


评论