gpt4 book ai didi

c# - 从客户端向服务器发送数据有效,但服务器至客户端不起作用

转载 作者:行者123 更新时间:2023-12-03 12:06:03 26 4
gpt4 key购买 nike

我知道在网络流上执行Flush操作无济于事,

这就是为什么我定义StreamWriter并将网络流作为构造函数参数的原因,然后我试图向客户端发送字母S来告诉他连接成功。

private StreamReader srReceiver;
private StreamWriter swSender;

// Occures when a new client is accepted
private void AcceptClient()
{
srReceiver = new System.IO.StreamReader(TcpClient.GetStream());
swSender = new System.IO.StreamWriter(TcpClient.GetStream());

if (TcpClient.Available > 0)
{
char [] buff0 = new char[TcpClient.Available];

// Read the account information from the client
srReceiver.Read(buff0, 0, TcpClient.Available);

sUserNumber = new string(buff0);

// We got a response from the client
if (!string.IsNullOrEmpty(sUserNumber))
{
OraEntities Ent = new OraEntities();

var user = Ent.USERS.FirstOrDefault(usr => usr.USER_NUMBER == sUserNumber);

// Check user validity
if (user == null)
{
Console.WriteLine("No user has this number: " + sUserNumber);
return;
}
else
{
// Add the user to Active Users List and start listening for messages from him
Server.AddUser(this, sUserNumber);

// S means connected successfully
swSender.WriteLine("S");
swSender.Flush();

// Start the new tread that hosts the listener
thrReceive = new Thread(HandleInput);
thrReceive.Start();
}
}
else
{
CloseConnection();
return;
}
}
}

但是没有任何内容通过网络发送(没有运行时异常)。

我想念什么?

最佳答案

这是我的测试代码,显示它可以正常工作:

服务器:

namespace SocketTestServer
{
class Program
{
static void Main(string[] args)
{
TcpListener lis = new TcpListener(IPAddress.Parse("127.0.0.1"), 2509);
lis.Start();
lis.BeginAcceptTcpClient(new AsyncCallback(acceptClient), lis);
Console.ReadKey();
}

private static void acceptClient(IAsyncResult ar)
{
TcpListener lis = ar.AsyncState as TcpListener;
using (TcpClient cli = lis.EndAcceptTcpClient(ar))
{
using (NetworkStream ns = cli.GetStream())
{
byte[] toSend = Encoding.ASCII.GetBytes("S\r\n");
ns.Write(toSend, 0, toSend.Length);
Console.WriteLine("Client connected");
}
}
}
}
}

客户:
namespace SocketTestClient
{
class Program
{
static void Main(string[] args)
{
using (TcpClient client = new TcpClient())
{
client.Connect(IPAddress.Parse("127.0.0.1"), 2509);
using (NetworkStream ns = client.GetStream())
{
StreamReader sr = new StreamReader(ns);
Console.WriteLine(sr.ReadLine());
Console.ReadLine();
}
}

}
}
}

下面的屏幕快照显示工作正常:

关于c# - 从客户端向服务器发送数据有效,但服务器至客户端不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815566/

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