TC官方合作论坛

 找回密码
 立即注册
查看: 158|回复: 1
打印 上一主题 下一主题

[问题] 为什么以我为主机别的连接连不上

[复制链接]
跳转到指定楼层
楼主
发表于 2016-9-7 19:59:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主机代码与客户端代码在本机上面试了都没有问题,我系统WIN7,对方系统xp,为什么把客户端发给对方电脑却边不上,是我的本机IP不对还是对方络设置问题还是其它防火墙什么的?
类似一个聊天工具,算了把代码一起发上来吧,刚接触网络方面不太懂,大神看看,本机IP看图

主机代码:

变量 线程ID=0,主机套接字,发送内容="",客户端套接字,记录内容,返回IP,线程1
功能 按钮0_点击()
    如果(线程ID==0)
        线程ID=线程开启("主机网络","")     
    结束
结束
功能 按钮1_点击()
    网络发送(客户端套接字,"主机已断开")
    等待(50)
    网络关闭套接字(客户端套接字)
    网络关闭套接字(主机套接字)
    网络关闭()
    标签设置文本("标签0","网络未建立")
    标签设置文本("标签2","连接断开")
    线程ID=0
    线程关闭(线程1)
    线程关闭(线程ID)
   
结束
功能 主机网络()
    网络初始化()
   
    主机套接字=网络套接字(1)
    网络绑定(主机套接字,8888)
    调试输出(主机套接字)
    如果(网络**(主机套接字,5)==真)
        标签设置文本("标签0","网络建立成功")
    否则
        标签设置文本("标签0","网络建立失败,重新启动")
    结束
   
    客户端套接字=网络接受(主机套接字,返回IP)
    如果(客户端套接字>0)
        标签设置文本("标签2","连接成功"&":IP:"&返回IP)
        
    结束
    线程1=线程开启("接收数据","")
   
    循环(等待(100))
        变量 名字=编辑框获取文本("编辑框2")
        如果(发送内容!="")
            网络发送(客户端套接字,名字&":"&发送内容)
            编辑框设置文本("编辑框1","")
            发送内容=""
        结束           
    结束   
结束

功能 网络_销毁()
    网络发送(客户端套接字,"主机已断开")
    网络发送(客户端套接字,"主机已断开")
    网络关闭套接字(主机套接字)
    网络关闭套接字(客户端套接字)
    网络关闭()  
    线程关闭(线程1)
    线程关闭(线程ID)
结束
功能 接收数据()
    变量 接收内容  
    循环(等待(100))
        网络接收(客户端套接字,接收内容)  
        如果(接收内容!="")
            记录内容=编辑框获取文本("编辑框0")
            调试输出(接收内容)
            变量 时间=当前时间()
            
            编辑框设置文本("编辑框0",记录内容&接收内容&"//"&时间&"\r\n")
            窗口发送消息(控件获取句柄("编辑框0"),#0115,7,0)
            如果(接收内容=="客户端已断开")
                接收内容=""
                网络关闭套接字(客户端套接字)
                网络关闭套接字(主机套接字)
                网络关闭()
               
                主机网络()
               
            结束
            接收内容=""
        结束
    结束
结束
功能 热键0_热键()  
    发送内容=编辑框获取文本("编辑框1")
结束

功能 网络_初始化()
    控件显示("热键0",假)
   
结束
功能 按钮2_点击()
    编辑框设置文本("编辑框0","")
   
结束

客户端代码:

变量 线程ID=0,客户端套接字,发送内容="",记录内容,线程1
功能 按钮0_点击()
    如果(线程ID==0)
        线程ID=线程开启("网络","")
    结束
结束
功能 按钮1_点击()
    网络发送(客户端套接字,"客户端已断开")
    等待(50)
    网络关闭套接字(客户端套接字)
    网络关闭()
    标签设置文本("标签0","网络未建立")
    标签设置文本("标签1","连接断开")
    线程ID=0
    线程关闭(线程1)
    线程关闭(线程ID)
   
结束
功能 网络()
    网络初始化()
    客户端套接字=网络套接字(1)
    如果(客户端套接字>0)
        标签设置文本("标签0","网络建立成功")
    否则
        标签设置文本("标签0","网络建立失败,重新启动")
    结束
    循环(等待(100))
        变量 网络状态=网络连接(客户端套接字,"192.168.***",8888)
        如果(网络状态==真)
            标签设置文本("标签1","与主机连接成功")
            跳出
        否则
            标签设置文本("标签1","与主机连接失败")
        结束
    结束
    线程1=线程开启("接收数据","")
    循环(等待(100))
        变量 名字=编辑框获取文本("编辑框2")
        如果(发送内容!="")
            网络发送(客户端套接字,名字&":"&发送内容)
            编辑框设置文本("编辑框1","")
            发送内容=""
        结束      
    结束
结束
功能 聊天工具客户端_销毁()
    网络发送(客户端套接字,"客户端已断开")
    网络发送(客户端套接字,"客户端已断开")
    网络关闭套接字(客户端套接字)
    网络关闭()  
    线程关闭(线程1)
    线程关闭(线程ID)
结束
功能 接收数据()
    变量 接收内容
    循环(等待(100))
        网络接收(客户端套接字,接收内容)
        如果(接收内容!="")
            记录内容=编辑框获取文本("编辑框0")  
            调试输出(接收内容)
            变量 时间=当前时间()
            编辑框设置文本("编辑框0",记录内容&接收内容&"//"&时间&"\r\n")
            窗口发送消息(控件获取句柄("编辑框0"),#0115,7,0)
            如果(接收内容=="主机已断开")
                接收内容=""
                网络关闭套接字(客户端套接字)
                网络关闭()
               
                网络()
            结束
            接收内容=""
        结束
    结束
结束
功能 热键0_热键()
    发送内容=编辑框获取文本("编辑框1")
结束
功能 按钮2_点击()
    编辑框设置文本("编辑框0","")
结束
功能 聊天工具客户端_初始化()
    控件显示("热键0",假)
   
结束


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

沙发
 楼主| 发表于 2016-9-8 12:01:03 | 只看该作者
自己回答吧,没人解答自己已解决,用映射端口就行了,因为是用路由器要从路由器映射端口就好比是转换一下IP才能用
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-20 03:36 , Processed in 0.263453 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表