TcpListener listener = new TcpListener(9000);
TcpClient tcpclient = new TcpClient();
[WebMethod(Description = "启动监听线程")]
public void listen()
{
Thread listen = new Thread(new ThreadStart(listenebegin));
listen.Start();
}
[WebMethod(Description = "开启监听")]
public void listenebegin()
{
listener.Start();//开始监听
while (true)
{
tcpclient = listener.AcceptTcpClient();//通过连接请求
//skt = listener.AcceptSocket();//通过连接请求
}
}
public void siglelightdatasend(byte []data)
{
int i = skt.Send(data);
//NetworkStream stream = tcpclient.GetStream();
//stream.Write(data, 0, data.Length);//发送数据
}
上面代码写在webservice上,放在服务器上面的,现在我启动客户端首先调用listen()这个方法,里面会新建一个线程,然后线程执行listenbegin()这个方法监听连接。最后在客户端调用siglelightdatasend(byte[] data)这个方法发送数据,但是每次都报错
不会解决,刚接触socket编程,哪位大侠帮帮忙
------解决方案--------------------
tcpclient = listener.AcceptTcpClient();//通过连接请求
有收到请求?skt从哪儿来?
你的webservice本来就是被动响应的(除非是推送式的)
在里面再去启动监听能接收到请求?你还是用其他持久运行的程序作socket的宿主吧