通过IP地址与C#聊天程序。连接不同网络中的两台计算机

时间:2019-04-26 13:38:04

标签: c# email networking connection chat

我正在用C#为我和我的朋友编写一个聊天程序,但我不知道如何将计算机连接到其他网络中的计算机。该代码在我的家庭网络中两台计算机之间正常运行,但是在两个不同的网络之间却不起作用。我知道为什么它不起作用,我的意思是说得通,我认为我可以将路由器与标准网关或其他某种方式连接起来,但是我在互联网上找不到任何可以帮助我的东西。

对于聊天应用程序,也许C#是错误的语言,但我确信它可能会以某种方式出现。如果有人可以告诉我这在C#中是如何工作的,或者哪种语言更合适?

    private void Form1_Load(object sender, EventArgs e)
    {
        //set up socket
        socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

        socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

        //get user IP
        textLocalIp.Text = GetLocalIP();
        //textRemoteIp.Text = GetLocalIP();
    }

    private void buttonConnect_Click(object sender, EventArgs e)
    {
        //binding Socket
        epLocal = new IPEndPoint(IPAddress.Parse(textLocalIp.Text), Convert.ToInt32(textLocalPort.Text));
        socket.Bind(epLocal);

        //connecting to remote IP
        epRemote = new IPEndPoint(IPAddress.Parse(textRemoteIp.Text), Convert.ToInt32(textRemotePort.Text));
        socket.Connect(epRemote);

        //listeninf the specific port
        buffer = new byte[1500];
        socket.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref epRemote, new AsyncCallback(MessageCallBack), buffer);
    }

1 个答案:

答案 0 :(得分:0)

好的,我不建议您使用C#聊天,因为它太旧了。 但是您需要:

Imports System.Net.Sockets
Imports System.Threading 

您将找到一个教程:here 另外,如果您需要其他教程,可以轻松找到for example a mobile chat app