Foxtable(狐表)用户栏目专家坐堂 → [求助]想问问这个tcp怎么能用于外网


  共有2496人关注过本帖树形打印复制链接

主题:[求助]想问问这个tcp怎么能用于外网

帅哥哟,离线,有人找我吗?
zto001
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
[求助]想问问这个tcp怎么能用于外网  发帖心情 Post By:2019/10/11 14:39:00 [显示全部帖子]

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100826&skin=0

下载信息  [文件大小:44.7 KB  下载次数:35]
图片点击可在新窗口打开查看点击浏览该文件:tcp通信实例.zip

[求助]想问问这个tcp怎么能用于外网,怎么两客户端之间通信?

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 14:39:00 [显示全部帖子]

我能在同一台电脑上关闭登录的客户端

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 15:07:00 [显示全部帖子]

是这样吗?
此主题相关图片如下:微信截图_20191011150523.png
按此在新窗口浏览图片
外网IP    222.186.10.168,9059


 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 15:14:00 [显示全部帖子]

他提示9059端口被占用,我用的是内网穿透器对端口10086进行IP转发,很明显,不行。

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 15:19:00 [显示全部帖子]

我还是先研究内网怎么用吧。

 下载信息  [文件大小:514.2 KB  下载次数:57]
图片点击可在新窗口打开查看点击浏览该文件:tcp客户端.zip

这个我按照你的那个做,可以用,也可以接收。那我需要怎么做才能让1楼文件内的,打开服务器,让两个客户端相互发信息?

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 16:03:00 [显示全部帖子]

那请教下怎么服务器跟客户端怎么接收发送?

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 16:45:00 [显示全部帖子]

Public server As MyServer

Public Class MyServer
    Private server As String
    Private port As Integer
    Private Const maxPacket As Integer = 64 * 1024
    Public tcpl As System.Net.Sockets.TcpListener = Nothing
    Public user_tb As New System.Collections.Hashtable()   '客户端列表
    Public msg As String   '客户端登录信息

    Public Sub New(ByVal ip As String, ByVal p As Integer)
        server = ip
        port = p
        Dim clientThread As New System.Threading.Thread(New System.Threading.ParameterizedThreadStart(AddressOf newThread))
'clientThread.IsBackground = True
        clientThread.Start(Nothing)
    End Sub

    Public Sub newThread(ByVal obj As Object)
        Dim ip As System.Net.IPAddress = System.Net.IPAddress.Parse(server)    '转换成IP
        tcpl = New System.Net.Sockets.TcpListener(ip, port)
        Try
            tcpl.Start()   '开始监听
        Catch ex As Exception
            MsgBox("端口" & port & "被占用,请改用其它端口")
            Return
        End Try

        '开始侦听传入的连接请求. 
    try
        msg &= "服务器已启动,正在监听..." & vbCrLf
        msg &= String.Format("服务器IP:{0}" & vbTab & "端口号:{1}" & vbCrLf, ip, port)
        While True
            Dim packetBuff As Byte() = New Byte(maxPacket) {}
            Dim newClient As System.Net.Sockets.Socket = tcpl.AcceptSocket()  '接受客户端请求
            Dim rlen As Integer = newClient.Receive(packetBuff)

            Dim data As String = Encoding.Unicode.GetString(packetBuff, 0, rlen)  '将接受的远程SOCKET,将数据存入接受缓冲区
            user_tb.Add(data, newClient)    '将客户端标识添加进hash表

            Dim svrlog As String = String.Format("[系统消息]新用户 {0} 在 {1} 已连接... 当前在线人数: {2}" & vbCrLf, data, DateTime.Now, user_tb.Count)
            msg &= svrlog

            Dim clientThread As New System.Threading.Thread(New System.Threading.ParameterizedThreadStart(AddressOf ThreadFunc))
            clientThread.Start(data)
'clientThread.IsBackground = True
            newClient.Send(Encoding.Unicode.GetBytes("OK"))
        End While
    catch ex As exception
        'msgbox("监听关闭成功")
    End try
    End Sub

    Private Sub ThreadFunc(ByVal obj As Object)
        Dim clientSkt As System.Net.Sockets.Socket = user_tb(obj)
        While True
            Try
                Dim cmdBuff(128) As Byte
                Dim rlen As Integer = clientSkt.Receive(cmdBuff)   '静候客户端关闭
            Catch ex As  exception
msgbox("有一个客户端被关闭了")
                user_tb.Remove(obj)
                msg &= String.Format("[系统消息]用户 {0} 的客户端在 {1} 关闭!当前在线人数:{2}" & vbCrLf, obj, DateTime.Now, user_tb.Count)
                 System.Threading.Thread.CurrentThread.Abort()
            End Try
        End While
    End Sub

    Public Sub RemoveClient(ByVal obj As Object)
        Dim clientSkt As System.Net.Sockets.Socket = user_tb(obj)
        clientSkt.Send(New Byte() {1, 1})   '让客户正常关闭
    End Sub
End Class

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/11 16:50:00 [显示全部帖子]

完全没看懂

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/13 10:02:00 [显示全部帖子]

没一点用啊

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191013100102.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/10/14 9:41:00 [显示全部帖子]

要不这样,你给我个能通信的服务器跟客户端。我直接抄代码,我比较笨,所以才买你们的软件。你之前让我去学的,研究了许久我都放弃了。实在是不懂。

 回到顶部
总数 11 1 2 下一页