【发布时间】:2014-08-27 23:25:44
【问题描述】:
我收到一个错误,提示 TcpClient 未连接,我无法将信息发送到未激活的套接字。我想知道这段代码有什么问题? 错误:在未连接的套接字上不允许这种类型的连接。
SERVER:
public List<TcpClient> clients = new List<TcpClient>();
On client connection:
Socket s = currClient.Client;
clients.Add(currClient.Client);
When Sending Client Info
Stream sendData = clients[0].GetStream();
ASCIIEncoding text = new ASCIIEncoding();
byte[] clientInfoByte = text.GetBytes("msg");
sendData.Write(clientInfoByte, 0, clientInfoByte.Length);
sendData.Close();
客户:
Thread thr = new Thread(commands);
thr.Start();
}
public static void commands()
{
Stream cmds = me.GetStream();
while (true)
{
byte[] b = new byte[100];
Socket s = me.Client;
int k = s.Receive(b);
string ClientInfo = "";
string command = System.Text.Encoding.ASCII.GetString(b);
if (command == "msg")
{
MessageBox.Show("Command Recieved!");
}
}
}
【问题讨论】:
-
您需要提供更多信息。
currClient是什么?套接字上使用的地址/绑定是什么? -
currClient 是当前的 TCPClient(它在连接时被命名)
标签: c# tcp tcpclient tcplistener