线程-TCPListener与TCPClient连接的问题

问题描述

TCPListener与TCPClient连接的问题

我要写一个TCP连接的小程序,想实现多个客户端连接服务端的功能。一个客户端与服务端建立连接后发送数据,服务端从流中读取数据,不断连接,然后等待客户端继续发送数据。但是在服务端读数据的程序开的线程中出现了,循环执行完以后不执行后面的代码的问题,谁知道是什么情况。
//client线程中调用的方法 读取流中数据
private void HandleClientComm(Object o) {
string data = null;
byte[] myByte = new byte[256];
TcpClient client = (TcpClient)o;
NetworkStream stream = client.GetStream();
int i;
string now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
while ((i = stream.Read(myByte, 0, myByte.Length)) != 0)
{
data += System.Text.Encoding.ASCII.GetString(myByte, 0, i - 1);
}
this.Dispatcher.BeginInvoke(new Action(delegate()
{
this.testThread.Text = now + " : " + data;
}));
}

解决方案

Socket的三个功能类TCPClient、TCPListener 和 UDPClient (转)

解决方案二:

一个客户端与服务器连接后,就会有一个线程被创建的。
建议你查一下客户连接到服务器的过程,即服务的监听到客户端连接后做了哪些操作。

时间: 2024-12-31 23:18:06

线程-TCPListener与TCPClient连接的问题的相关文章

c# cp lient-写了一个c# TcpClient 连接超时 请大师 吐槽!

问题描述 写了一个c# TcpClient 连接超时 请大师 吐槽! 解决方案 代码最严重的问题是调用th.Abort,不要这么做.另外,没必要死循环轮询,而应该使用异步方法.

android-多线程问题,和线程或者http网络连接强制关闭的问题

问题描述 多线程问题,和线程或者http网络连接强制关闭的问题 5C 我在做android开发的时候.我本来想可以做实时关闭http网络连接,但是不知道怎么实现.所以我就想直接关闭发起网路通信的线程也是一样的应该.但是这个线程怎么都无法及时关闭因为这个线程卡在了网络访问中.还在等待服务器返回数据.这样就无法及时关闭的.我试过stop()方法.但是报错:java.lang.UnsupportedOperationException网上也没有找到相关结束网络通信的资料.我就想问一下有没有什么办法能够

使用Tcplistener和tcpclient进行网络通信时,为什么不能连续接收数据呢?

问题描述 当在服务器端采用无限循环接收数据时,可以连续接收,但这样客户端却不能连续接收来自服务器的数据了.我所希望的效果是client发送控制命令给server,server将运行状态反馈给client.谁能帮帮忙?服务器端代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSyste

(C#)TcpClient连接问题

问题描述 try{IPEndPointipep=newIPEndPoint(IPAddress.Parse(ConfigurationManager.ConnectionStrings["hostaddress"].ConnectionString),8800);client=newTcpClient(ipep);MessageBox.Show("服务连接成功");}catch{MessageBox.Show("服务连接失败");}Network

新手C# TcpListener监听问题

问题描述 我使用TcpListener和TcpClient做了一个光伏电站远程监控程序,刚开启程序时没有任何问题,可以正常发送命令,返回数据,但是程序运行七八个小时后,我发现程序可以正常监听到电站在线,发送命令后无法返回正常数据,只能返回FE设备心跳包,但是我把程序关闭后再重新启动,又可以继续接收到正常数据,请问这个原因是怎么造成的?tcpclient每次连接接收数据后都已正常关闭.还有个小问题,有时我发送命令后,发现心跳包会合正常数据一起返回,心跳包在正常数据前面,比如:FE010203,FE

使用C#进行SMTP协议客户端开发心得--连接篇

smtp|客户端|心得 一. 关于与服务器的连接 与smtp服务器的连接一般采用两种方式: 第一种: 当服务器地址是字符串型的,例如"smtp.tom.com","211.128.11.25"这样的形式时,我们可以用TcpClient类建立连接. tcpClient = new TcpClient (smtpServer, smtpPort); 隶属命名空间: System.Net.Sockets.TcpClient 为使 TcpClient 连接并交换数据,使用

C# TCP连接

问题描述 我想写一个客户端和服务端,使用TCP连接,比如服务端开放某个端口,客户端发送连接请求,在服务端能查看到发出连接请求的多个客户端IP地址,然后选择其中一个进行一对一连接.请问服务端能看到多个连接请求的这个列表该如何写,谢谢各位大神! 解决方案 解决方案二: 网上有代码,你搜吧,c#socket通讯解决方案三: 撸主,你描述的这个就是socket通讯,一句两句也说不清楚,你度娘找个例子,先把socket通讯搞清楚.解决方案四: 首先你定义一个字典,存客户端唯一标识号和tcpclient,每

Netty的http client连接池设计

1 复用类型的选型 1.1 channel 复用 多个请求可以共用一个channel 模型如下:                                                特点: callback队列为回调队列. 不同的callback通过一个全局的id进行标识.发送的时候会把该id发到服务端,服务端在回复的时候必须把该id再返回到客户端. 获取连接只需要随机获取一个channel即可,将callback添加到队列里面.  获取连接时消除了锁的竞争,性能高效. 结构简单.  

J2ME中多线程网络连接编程的分析

编程|多线程|网络 摘 要 介绍并分析了J2ME的通用网络连接框架(GCF),并以此为基础,指出了在J2ME网络连接编程中存在的问题,并提出了通过构建多线程的两种解决方法. 关键词 J2ME GCF多线程 网络连接 引言 J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE.J2EE并称.J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话.可视电话.数字机顶盒和汽车导航系统等等.即J2ME是为消费电子产品和手持设备量身定制的