//接收端
private void ReceiveData(object obj)
{
MemoryStream mstream = new MemoryStream();
User user = (User)obj;
Socket client = user.client;
byte[] buffer = new byte[8]; int bytesRead = 0;
int totalBytes = 0;
mstream.Position = 0;
byte[] rec;
while ((bytesRead = user.netSream.Read(buffer, 0, buffer.Length))>0)
{
mstream.Write(buffer, 0, bytesRead);
totalBytes += bytesRead;
Console.WriteLine("Receiving {0} bytes ...", totalBytes);
}
rec = mstream.ToArray(); SerializableClass scl = new SerializableClass();
object oj = scl.Deserialize(rec);
// IFormatter formatter=new BinaryFormatter(); MessageEvent me = (MessageEvent)oj;
if (me != null)
{
Console.WriteLine(me.msg);
}
//发送端
tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
tcpClient.Connect(new IPEndPoint(ip,port));
Stream = new NetworkStream(tcpClient);
sr = new StreamReader(Stream);
sw = new StreamWriter(Stream);
BinaryWriter bw = new BinaryWriter(Stream);
service=new Service(list,sw);
MessageEvent me = new MessageEvent();
Serializableapi seri=new Serializableapi();
me.msg = "大家好啊fkdkfjdskafjksdjfksdjkfdsjfsdkfj";
IFormatter formatter = new BinaryFormatter();
// formatter.Serialize(Stream,me);
byte [] minfo=seri.Serializable(me);
MemoryStream ms = new MemoryStream();
ms.Write(minfo,0,minfo.Length);
// BinaryWriter bw = new BinaryWriter(); ms.Position = 0;
byte[] fileBuffer = new byte[8];
int bytesRead;
int totalBytes = 0;
while ((bytesRead = ms.Read(fileBuffer, 0, fileBuffer.Length)) > 0)
{
Stream.Write(fileBuffer, 0, fileBuffer.Length);
totalBytes += bytesRead;
}//tcpClient.Close();写上这句时,接收端才会把接收到的数据显示出来.
//不写上就不行
大家是用什么办法来解决的
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货