JAVA与C#的TCP通信——JAVA客户端,C#线程池服务端
2011-04-28 10:42
603 查看
小小示例,用于java与C#的TCP通信,java作为client,C#作为Server,Server用线程池。
主要功能为,client可以发送数据到Server,然后Server发送数据到client,断开;
相当于client发出请求,Server给予回应。
JAVA Client:
C# Server:
另外,有四个C#方面TCPServer例子程序可供学习研究,下载地址
http://download.csdn.net/source/3232338
主要功能为,client可以发送数据到Server,然后Server发送数据到client,断开;
相当于client发出请求,Server给予回应。
JAVA Client:
package com.cn.test; import java.net.*; import java.io.*; public class TCPClient2 { public static void main(String[] args) throws Exception { TCPClient(); } public static void TCPClient(){ String s=""; Socket mysocket; InputStreamReader in=null; OutputStreamWriter out=null; try{ mysocket=new Socket("127.0.0.1",8002); in = new InputStreamReader(mysocket.getInputStream(),"UTF8"); out = new OutputStreamWriter(mysocket.getOutputStream()); //从控制台输入数据 String sendMsg = ""; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter your value:"); sendMsg = br.readLine(); out.write(sendMsg); //通过 out向服务器写入信息。 out.flush(); int c =0; while((c = in.read())>-1){ // System.out.print((char)c); //通过使用in读取服务器写入输出流的信息。堵塞状态, s += (char)c; } //除非读取到信息。 System.out.println("客户收到服务器数据---->"+s); in.close(); out.close(); mysocket.close(); } catch(IOException e) { System.out.println(e.toString()); } } }
C# Server:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Threading; namespace TCPServer { class Program { static private System.Net.IPAddress MyIP = System.Net.IPAddress.Parse("127.0.0.1"); static private TcpListener listener = new TcpListener(MyIP, 8002); static private String msg; static void Main(string[] args) { ThreadPool.SetMaxThreads(10, 5); ThreadPool.SetMinThreads(5, 5); listener.Start(); //接收数据 while (true) { //测试是否有数据 try { TcpClient client = listener.AcceptTcpClient(); ThreadPool.QueueUserWorkItem(callbackPoc, client); } catch (Exception re) { Console.WriteLine(re.Message); } } listener.Stop(); } //线程池回调函数 static void callbackPoc(Object k) { TcpClient client = (TcpClient)k; NetworkStream ns = client.GetStream(); //StreamReader sr = new StreamReader(ns);//流读写器 //字组处理 while (true) { try { byte[] bytes = new byte[1024]; int bytesread = ns.Read(bytes, 0, bytes.Length); msg = Encoding.Default.GetString(bytes, 0, bytesread); //显示 //MessageBox.Show(msg); Console.WriteLine(msg); //将收到的数据回传给客户端,实际中,应该经过解析,将相应的数据回传给客户端。 NetworkStream sendStream = client.GetStream(); String msga = Console.ReadLine(); Byte[] sendBytes = Encoding.Default.GetBytes(msga); sendStream.Write(sendBytes, 0, sendBytes.Length); sendStream.Flush(); ns.Flush(); ns.Close(); sendStream.Close(); } catch (Exception ex) { client.Close(); Console.WriteLine(ex.Message); break; } } } } }
另外,有四个C#方面TCPServer例子程序可供学习研究,下载地址
http://download.csdn.net/source/3232338
相关文章推荐
- [通信] C# TCP实现多个客户端与服务端 数据 与 文件的传输
- Java简单实现TCP服务端和客户端通信
- C# client 与java netty 服务端的简单通信,客户端采用Unity。
- C# client 与java netty 服务端的简单通信,客户端采用Unity。
- C#网络编程.2.套接字.TcpListener.TcpClient.服务端客户端通信
- C# 基于TcpListener和TcpClient的客户端服务端通信
- java客户端与服务端通信Tcp/Ip
- C#网络编程.2.套接字.TcpListener.TcpClient.服务端客户端通信
- socket 通信 入门3 android 客户端 C# 服务端
- Java-网络通信、TCP、UDP、服务器客户端的通信
- 网络编程_TCP_Socket通信原理_多个客户端_聊天室原理JAVA189-190
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- Java IO——Socket:通过多线程实现多客户端与一个服务端通信
- Java客户端与服务端通信转换必备工具
- C#客户端发送Http请求与服务端通信
- C# Socket TCP简单例子(服务器与客户端通信)
- JAVA笔记15__TCP服务端、客户端程序 / ECHO程序 /
- C# TCP实现多个客户端与服务端 数据 与 文件的传输
- Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
- java网络编程之服务端客户端socket简单通信案例