You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SimpleTCP是否仅支持本地连接?跨设备联机卡牌游戏连接失败求助

TCP服务器本地正常但跨设备无法连接的排查与解决

问题概述

本地运行的在线卡牌游戏TCP服务端与客户端通信正常,但跨设备时客户端无法建立连接。服务端运行在装有Visual Studio的电脑上,客户端为未安装VS的WinForms程序。

客户端代码

client = new SimpleTcpClient();
client.StringEncoder = Encoding.UTF8;
client.DataReceived += Client_DataReceived;
try 
{
    client.Connect(TextIP.Text, Convert.ToInt32(TextPort.Text));
    textStatus.Text = "Connected\r\n";
}
catch(Exception)
{
    textStatus.Text = "PORT OR IP UNAVAILABLE";
    ConnectButton.Enabled = true;
}

服务端代码

SimpleTcpServer server;

server = new SimpleTcpServer();
server.Delimiter = 0x13;
server.StringEncoder = Encoding.UTF8;
server.DataReceived += Server_DataReceived;

if (server.IsStarted == false)
{
    textBox1.Text += "Server starting";
    System.Net.IPAddress ip = System.Net.IPAddress.Parse(textBoxIP.Text);
    server.Start(ip, Convert.ToInt32(textBoxPort.Text));
}

核心排查与解决步骤

  • 修正服务端绑定IP
    若服务端绑定的是127.0.0.1(localhost),则只会监听本地回环接口,其他设备无法访问。需改为绑定服务端电脑的局域网IP(如192.168.x.x),或直接绑定0.0.0.0(监听所有可用网络接口)。
  • 核对客户端连接参数
    客户端必须输入服务端的局域网IP(而非localhost或公网IP,除非处于公网环境),端口需与服务端启动端口完全一致。可在服务端电脑用ipconfig命令查看局域网IP。
  • 放行防火墙端口
    服务端电脑的Windows防火墙(或第三方防火墙)大概率拦截了目标端口的入站连接。需添加防火墙规则,允许服务端使用的TCP端口接收外部连接。
  • 验证网络连通性
    在客户端电脑执行ping [服务端局域网IP],若无法ping通,说明两台设备不在同一局域网或网络路由异常;若ping通但仍无法连接,优先排查端口拦截或服务端IP绑定错误。
  • 排查服务端启动异常
    给服务端启动代码添加异常捕获,确认是否存在启动失败的情况:
    try
    {
        server.Start(ip, Convert.ToInt32(textBoxPort.Text));
        textBox1.Text += "\nServer started successfully";
    }
    catch(Exception ex)
    {
        textBox1.Text += "\nServer start failed: " + ex.Message;
    }
    

内容的提问来源于stack exchange,提问作者Ali Bennouna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:20:26