gpt4 book ai didi

c# - 无法建立连接,因为目标机器主动拒绝它为什么?

转载 作者:行者123 更新时间:2023-11-30 18:33:04 27 4
gpt4 key购买 nike

您好,我正在使用 TCPCLient 和 TCPlitner 来传输数据,但出现无法连接的错误下面是我的代码

 private void button1_Click(object sender, EventArgs e)
{
TcpClient tcpc = new TcpClient("192.168.21.46", 10);
NetworkStream nts = tcpc.GetStream();
if (nts.CanWrite)
{
Byte[] sends = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.ToCharArray());
nts.Write(sends, 0, sends.Length);
nts.Flush();
}
}

private void button2_Click(object sender, EventArgs e)
{
TcpListener myListener = new TcpListener(10);
myListener.Start();
while (true)
{
//Accept a new connection
Socket mySocket = myListener.AcceptSocket();
if (mySocket.Connected)
{
//make a byte array and receive data from the client
Byte[] receive = new Byte[64];
int i = mySocket.Receive(receive, receive.Length, 0);
char[] unwanted = { ' ', ' ', ' ' };
string rece = System.Text.Encoding.ASCII.GetString(receive);
label1.Text = rece.TrimEnd(unwanted);
}
}
}

我以相同的形式添加了这两个按钮,其中提到的 Ip apaddress 是我的系统 IP 地址。谁能告诉我为什么会这样。甚至我也删除了防火墙设置。

最佳答案

首先,您的 UI 将在单击按钮 2 时挂起,因为它卡在 while(true) 循环中,因此使用 BeginAcceptSocket(IAsyncResult r, Object state) 进行异步操作。

其次,您必须使用环回地址,否则防火墙应该阻止端口 10(假设它未打开)。此外,TcpListener(int port) 已过时,最好使用 TcpListener(IPAddress localddr, int port) 并同时使用环回地址。

关于c# - 无法建立连接,因为目标机器主动拒绝它为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com