C# 在两个TCP应用程序之间传输数据时出现问题
我有一个使用TcpListener的服务器应用程序。它侦听连接,当它获得连接时,StreamReader读取流并将流传递给基于请求提供回复的方法。回复是从.html文件读取的字符串。我的客户端应用程序接受回复并将字符串设置为webBrowser1.Documenttext属性。问题:我的服务器似乎没有收到请求,但这两个应用程序似乎彼此连接(退出服务器会在客户机上产生错误)。这是我的密码: 服务器:C# 在两个TCP应用程序之间传输数据时出现问题,c#,tcp,client,C#,Tcp,Client,我有一个使用TcpListener的服务器应用程序。它侦听连接,当它获得连接时,StreamReader读取流并将流传递给基于请求提供回复的方法。回复是从.html文件读取的字符串。我的客户端应用程序接受回复并将字符串设置为webBrowser1.Documenttext属性。问题:我的服务器似乎没有收到请求,但这两个应用程序似乎彼此连接(退出服务器会在客户机上产生错误)。这是我的密码: 服务器: static void Main(string[] args) { Con
static void Main(string[] args)
{
Console.WriteLine("Application Started");
IPHostEntry host;
string localIP = "?";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily.ToString() == "InterNetwork")
{
localIP = ip.ToString();
}
}
IPAddress hostIP = IPAddress.Parse(localIP);
TcpListener listener = new TcpListener(hostIP, 1986);
string request;
StreamWriter swStream;
StreamReader srStream;
listener.Start();
while (listener.Pending() == true)
{
listener.AcceptTcpClient();
Console.WriteLine("New Client Accepted");
TcpClient client = listener.AcceptTcpClient();
srStream = new StreamReader(client.GetStream());
request = srStream.ReadToEnd();
Console.WriteLine("Stream has been read.");
swStream = new StreamWriter(client.GetStream());
string responseText = handleRequest(request);
swStream.Write(responseText);
}
Console.ReadLine();
}
客户:
private void getInfo(string request)
{
string dispCode;
string hostName;
TcpClient client;
//set IP & host
serverIP = (IPAddress.Parse(SGAClient.Properties.Settings.Default.ServerIP));
hostName = (Dns.GetHostEntry(serverIP).ToString());
client = new TcpClient();
client.Connect(serverIP, 1986);
StreamWriter swStream = new StreamWriter(client.GetStream());
swStream.Write(request);
StreamReader srStream = new StreamReader(client.GetStream());
//sets the value of the display code
string response = srStream.ReadToEnd();
swStream.Close();
srStream.Close();
client.Close();
//displays the information from the server
displayInfo(response);
}
您接受客户机(放弃它)。。。然后再次尝试接受它
listener.AcceptTcpClient();
Console.WriteLine("New Client Accepted");
TcpClient client = listener.AcceptTcpClient();