我用MFC中的CSocket写的程序,怎么样才能让客户端也能收到服务器端的信息呢

我用MFC中的CSocket写的程序,怎么样才能让客户端也能收到服务器端的信息呢,第1张

如果是点对点的聊天信息的话

还是UDP比较合适

直接使用CSocket类 而没有手工加创建线程的代码的话 不是多线程的

也就是说是在主线程运行的

我之前写过一个简单的聊天程序 你可以参考下

希望对你有帮助

看你的聊天工具是点对点还是只是与服务器通讯,服务器负责转发到其他指定的用户那里

这样的话,都差不多

用户,有独立因特网IP的,有局域网内网的,随便

用户的MFC聊天工具定时连接服务器检查有没有自己的信息,有就取过来显示

自己要发送信息,就连接服务器,把信息塞给服务器,告知发给哪位用户

完了

如果是点对点的,首先就是要知道对方的IP,局域网可以扫描,如果固定监听某个或某几个/某段端口的话,但是广域网必须有一个固定的服务器,直接有因特网IP的服务器

大家都去连接这个服务器,通过与服务器通信,查询在线人列表,IP,端口,拥有因特网IP地址的用户就可以直接连接对方的IP端口,要连接到内网的用户,就需要利用UDP协议来打洞,打洞好了的话,你就可以直接连接对方,而不需要通过服务器中转了

即使两个都是内网的用户聊天,打好洞,也就是路由器NAT做了端口映射,这两个内网用户就可以点对点直连了

'xiansr2014/2/7 vbnet2010 调试通过

Imports SystemNet

Imports SystemNetSockets

Imports SystemText

Public Class Form1

Private Sub Button1_Click(sender As SystemObject, e As SystemEventArgs) Handles Button1Click

        Dim udpClient As New UdpClient(11000)

        Try

            udpClientConnect("127001", 11000)

            Dim sendBytes As [Byte]() = EncodingASCIIGetBytes(RichTextBox1Text)

            udpClientSend(sendBytes, sendBytesLength)

            Dim RemoteIpEndPoint As New IPEndPoint(IPAddressAny, 0)

            Dim receiveBytes As [Byte]() = udpClientReceive(RemoteIpEndPoint)

            Dim returnData As String = EncodingASCIIGetString(receiveBytes)

            RichTextBox2Text = "接收到: " + returnDataToString()

            'DebugPrint(("This message was sent from " + RemoteIpEndPointAddressToString() + " on their port number " + RemoteIpEndPointPortToString()))

            udpClientClose()

        Catch ex As Exception

            stop

        End Try

    End Sub

End Class

以上就是关于我用MFC中的CSocket写的程序,怎么样才能让客户端也能收到服务器端的信息呢全部的内容,包括:我用MFC中的CSocket写的程序,怎么样才能让客户端也能收到服务器端的信息呢、有谁用过MFC编写过聊天工具,,局域网聊天工具网上有,问题是MFC能实现广域网聊天功能吗、vb.net 怎样用UDP 协议 写一个聊天程序啊如图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9314590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存