猫史档案馆


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

用户:苹果真好吃苹果真好吃查看:112 回复: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


评论

连不上啊

别把我电脑挤爆了

报啥错

主机没有正确响应

你在哪个城市,太远了可能连不上

湖南南部

TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

那就是太远了,连不上,乌鲁木齐市应该可以

你再试一次,我重启了

还是没连上,你试试挂个cdn

我要关服了,11点左右会再次启动

我这光纤宽带网这么差

对了,IDLE有些连不了


苹果真好吃苹果真好吃

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

点赞0


评论


苹果真好吃苹果真好吃

乌鲁木齐市可以直接连接

点赞0


评论


森林之喵a森林之喵a

这是什么

点赞0


评论

聊天室,已关服


苹果真好吃苹果真好吃

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

点赞0


评论

注意啦,端口改6551,mac服务器1会报错

开服啦兄弟们

给一个很简单的建议,就是用ngrok(或花生壳)进行内网穿透,这样可以跨网段通信

你这么写的话是只能在同一路由(网段)下的,包括IP也是网段下NAT转发的子网IP,要开服必须借助穿防火墙后的IPv6(无NAT)、公网IP云服务器和内网穿透的任一个,看自己的技术需求

ngrok国内比较稳定,但是要用github账号

而且要注意公网传输的丢包和中间人攻击问题,短包不容易丢,但我当年做480000长包是被黏包和丢包折腾了好久的(后来也因为这个把项目废了

所以我要用mac地址是吗

额,我测试过两台IPV4地址不同的主机连接,可以正常使用啊

我对网络编程这方面也不是很懂,你们也应该能看出来,有些代码不是我自己写的

我用IPV6可以是吧,那我试试IPV6

我直接整144.144.144.144吧

dns好像不行

你猜猜为什么家用宽带路由下叫“局域网”

说细一点的话,网络的传输速率和丢包率跟硬件都有关系的,T C P/IP是基于MAC,而U D P则作为http类的协议,具体看一下网络七层协议,到T C P这里就很成熟了,几乎不会丢包,主要还是要和甜蜜的算法斗智斗勇

长距离并不是主要问题,你的代码跨省市跑不了正常,甚至你到隔壁用邻居家wifi也访问不了,因为宽带入户是绝对会有NAT转发和DH喵分配网段IP的,IPv4公网地址早分配完了,现在要那个只能跪求运营商/云服务器/内网穿透

基于T C P/I P的直接对于IP的链接不需要dns过程,dns是指从域名到IP的解析,T喵/IP已经完成寻址和路由计算的算法了,所以不会是dns的问题(再说python socket本来也可以直连域名

广播地址通常只针对一个网段?我不是很清楚,但是这个肯定解决不了跨网段的

IPv6下没有NAT但是运营商DH喵定期改IP真的烦,而且要注意路由一般是有防火墙的,如果要用的话记得开放端口(工信部23/8/6新规可以自己学习一下,现在我穿透用的是喵的服(只有这一个近的。。。,加上调试属性,应该不用报备

此外,我记得dns也是墙常见的表征之一,墙的很多体征就是dns过程中由运营商发动dns劫持/污染,Dot和Doh有时候可以缓解,但是仅对于github之类中性的有效(github有时候访问不了很可能和运营商是有一定关系的

https://shequ.codemao.cn/work/214910535


jczzcjczzc

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

点赞0


评论

那个完成了整个社区从储存、交流到管理的比较完全的解决方案,并基本完成了公网传输的整备,可以用内网穿透做跨网段的

写了我半年


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

能不能给你打了

点赞0


评论


owugi7s6owugi7s6

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

点赞0


评论

高配口马❓