各位新年好!
当进行TCP监听时,有客户连接,怎么接受完客户的信息,立即发送信息给客户呢?
TcpClient MyTcpClient=MyTcpListener.AcceptTcpClient();
NetworkStream MyStream=MyTcpClient.GetStream();
byte[] MyBytes = new byte[1024];
int MyBytesRead=MyStream.Read(MyBytes,0,MyBytes.Length);
string MyMessage=System.Text.Encoding.Default.GetString(MyBytes,0,MyBytesRead);
cmd=MyMessage;
this.richTextBox1.Text+=cmd;
cmd="HELLO WORLD!";
StreamWriter MyStreamS=new StreamWriter(MyStream);
MyStreamS.Write(cmd);
MyStreamS.Flush();
MyStreamS.Close();
MyTcpClient.Close();
当进行TCP监听时,有客户连接,怎么接受完客户的信息,立即发送信息给客户呢?
TcpClient MyTcpClient=MyTcpListener.AcceptTcpClient();
NetworkStream MyStream=MyTcpClient.GetStream();
byte[] MyBytes = new byte[1024];
int MyBytesRead=MyStream.Read(MyBytes,0,MyBytes.Length);
string MyMessage=System.Text.Encoding.Default.GetString(MyBytes,0,MyBytesRead);
cmd=MyMessage;
this.richTextBox1.Text+=cmd;
cmd="HELLO WORLD!";
StreamWriter MyStreamS=new StreamWriter(MyStream);
MyStreamS.Write(cmd);
MyStreamS.Flush();
MyStreamS.Close();
MyTcpClient.Close();
解决方案 »
- 关于gridview中嵌套table的样式问题
- 这个timer程序中的这段代码是什么意思啊?MSDN查了不了解
- (高手请进)关于WebRequest和WebResponse
- winfroms 窗体设置问题
- 大家推荐点比较经典的winform教程,小弟想从webform像winform进行转型
- 英文OS环境下,ASP.net调用COM,中文全部为乱码,但在同一台机器上asp读是正常的,有没有人帮忙解决下?
- 求教一段简单的正则表达式,<td txsTdTextOnlyMoreStyle colspan="2" class="s1" bgcolor="#ff0000" ...>
- 【高分求解】如何获取文件的编码
- C# 新手提问, 如何在程序中获得查询数值?
- 我对.net的一点顿悟
- 关于EXCEL导入SQL的问题
- WINFORM高手请进!如何使用API捕获屏幕上鼠标指针图片并显示出来
TcpClient MyTcpClient=MyTcpListener.AcceptTcpClient();
NetworkStream MyStream=MyTcpClient.GetStream();
byte[] MyBytes = new byte[1024];
int MyBytesRead=MyStream.Read(MyBytes,0,MyBytes.Length);
string MyMessage=System.Text.Encoding.Default.GetString(MyBytes,0,MyBytesRead);
cmd=MyMessage;
this.richTextBox1.Text+=cmd.Substring(4,11);
//解释执行
cmd="HELLO WORLD!";
MyStream.Write(cmd);
MyStream.Flush();
MyStream.Close();
MyTcpClient.Close();
TcpClient MyTcpClient=MyTcpListener.AcceptTcpClient();
NetworkStream MyStream=MyTcpClient.GetStream();
byte[] MyBytes = new byte[1024];
int MyBytesRead=MyStream.Read(MyBytes,0,MyBytes.Length);
string MyMessage=System.Text.Encoding.Default.GetString(MyBytes,0,MyBytesRead);
cmd=MyMessage;
this.richTextBox1.Text+=cmd.Substring(4,11);
cmd="HELLO WORLD!";
byte[] byteTime = Encoding.ASCII.GetBytes(cmd);
MyStream.Write(byteTime,0,byteTime.Length);
//MyStream.Flush();
MyStream.Close();
MyTcpClient.Close();
MyTcpListener.Start();
TcpClient MyTcpClient = MyTcpListener.AcceptTcpClient();
NetworkStream MyStream = MyTcpClient.GetStream();
byte[] MyBytes = new byte[1024];
int MyBytesRead = MyStream.Read(MyBytes, 0, MyBytes.Length);
string MyMessage = System.Text.Encoding.Default.GetString(MyBytes, 0, MyBytesRead);
string cmd = MyMessage;
//this.richTextBox1.Text += cmd.Substring(4, 11);
cmd = "HELLO WORLD!";
byte[] byteTime = Encoding.ASCII.GetBytes(cmd);
MyStream.Write(byteTime, 0, byteTime.Length);
//MyStream.Flush();
MyStream.Close();
MyTcpClient.Close();
Console.Read();
mainSocket.BeginAccept(new AsyncCallback(OnClientConnect), null);
楼主可参考相关资料!
= 这个一点问题也没有,异步接收即可然后立即从服务端发送消息给客户端
= 问题来了:发信息没问题,但是你如何知道客户端的状态?换句话说,你如何知道客户端已经准备好接收了?应该使用两个分线程,一个用来监听并且接受客户端的连接请求,并且把这些请求加入一个列表;另一个线程不断运行Socket.Select,将列表中的Socket进行筛选,判断客户端的状态,为等待接收或者等待发送。然后,使用异步接收或者发送,来处理客户端的请求。