【发布时间】:2018-11-19 23:52:14
【问题描述】:
我有一个客户端和一个服务器,它们使用 TCP/IP 协议在网络中进行通信。每当我在 Visual Studio 中启动应用程序时。我有一个按钮 StartListening 可以启动服务器并监听客户端请求。
现在我正在尝试将 StartListening 按钮创建到一个窗口服务中,并且不需要单击按钮进行收听。
这是一个服务器代码:
protected override void OnStart(string[] args)
{
Thread thread = new Thread(StartListening);
}
public void StartListening()
{
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
int nPort = 8001;
TcpListener tcpListener = new TcpListener(ipAddress,nPort);
tcpListener.Start();
byte[] bytes = new byte[256];
while (true)
{
Socket socket = tcpListener.AcceptSocket();
int res = socket.Receive(bytes);
ASCIIEncoding asen = new ASCIIEncoding();
string str = asen.GetString(bytes);
//logic
socket.Close();
}
}
注意:在上述代码中的//logic 中,我应该放置什么东西来与客户端进行通信?
【问题讨论】:
-
对了,你忘记启动话题了
-
这对于服务启动是显而易见的。编辑
-
不,不是。如果它永远不会到达那里,那么询问要插入什么代码来与客户端通信有点多余
标签: c# winforms windows-services tcp-ip tcplistener