端口局域网内远程通讯问题(設置防火牆)

本文介绍了一个在局域网中设置的服务,该服务监听5678端口并发送字节数据。当在同一台机器上运行客户端时,一切正常;但当从另一台机器上的客户端尝试连接时,则出现连接失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。我在局域网的服务器上安装了一个服务,这个服务的功能是监听5678端口,并发送字节;

public   void   Start()
{
ReadQuotes();
listenerThread   =   new   Thread(
new   ThreadStart(this.Listener));
listenerThread.Start();
}
protected   void   Listener()
{
try
{
//IPAddress   ipAddress   =   Dns.Resolve("localhost").AddressList[0];
                                IPAddress   ipAddress   =   IPAddress.Parse("192.168.0.3");
listener   =   new   TcpListener(ipAddress,   port);
listener.Start();  
while   (true)
{
Socket   socket   =   listener.AcceptSocket();
string   message   =   GetRandomQuoteOfTheDay();
UnicodeEncoding   encoder   =   new   UnicodeEncoding();
byte[]   buffer   =   encoder.GetBytes(message);
socket.Send(buffer,   buffer.Length,   0);
socket.Close();

                                        //performanceCounterRequestsTotal.Increment();
                                        //performanceCounterBytesSentTotal.IncrementBy(buffer.Length);

                                        //requestsPerSec++;
                                        //bytesPerSec   +=   buffer.Length;
}
}
catch   (SocketException   e)
{
string   message   =   "Quote   Server   failed   in   Listener:   "  
+   e.Message;
eventLog.WriteEntry(message,   EventLogEntryType.Error);
}
}
public   void   Stop()
{
listener.Stop();
}
public   void   Suspend()
{
listenerThread.Suspend();
}
public   void   Resume()
{
listenerThread.Resume();
}
2。同时我又做了一个客户端UI程序去读取服务器端发送的内容。
private   void   buttonQuote_Click(object   sender,   System.EventArgs   e)
{
statusBar.Text   =   "";
string   server   =   textHostname.Text;
try
{
int   port   =   Convert.ToInt32(textPortNumber.Text);
}
catch   (FormatException   ex)
{
statusBar.Text   =   ex.Message;
return;
}
TcpClient   client   =   new   TcpClient();
try
{
client.Connect(textHostname.Text,
Convert.ToInt32(textPortNumber.Text));
NetworkStream   stream   =   client.GetStream();
byte[]   buffer   =   new   Byte[1024];
int   received   =   stream.Read(buffer,   0,   1024);
if   (received   <=   0)
{
statusBar.Text   =   "Read   failed";
return;
}
textQuote.Text   =   Encoding.Unicode.GetString(buffer);
}            
catch   (SocketException   ex)
{
statusBar.Text   =   ex.Message;
}
finally
{
client.Close();
}

}
问题是:
1。当我在同一台机器上运行客户端程序时可以访问,不同机器上运行客户端时就会提示:“由于连接方在一段时间后没有正确的答复或连接的主机没有反应,连接尝试失败。” 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值