由于Java在网络方便的巨大影响力,以及微软推出的Framework .net平台的应用不断扩大,使得Java与C#的网络通信变得愈来愈重要。本文主要介绍java与c#的Socket通信。Java的Socket通信模块由于封装的比较高级,用起来也比较舒服。但是C#虽然有TcpClient等类库的支持,但是要与java实现底层的socket通信任然比较麻烦。本文基于C#的Socket模块与Java的Socke模块t实现底层二进制数据的通信。
一.Java作为服务器:以下是核心代码:
package com.ffg;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer
{
public static void main(String args[])
{
try
{
ServerSocket ss=new ServerSocket(9999);
System.out.println("Listening on 9999......");
while(true)
{
try
{
Socket sc=ss.accept();
System.out.println("Request come ...");
DataInputStream din=new DataInputStream(sc.getInputStream());
DataOutputStream dout=new DataOutputStream(sc.getOutputStream());
String s=readStr(din);
System.out.println("Rec:"+s);
writeStr(dout," Hi C#,I‘m Java Sever。"+s);
dout.close();
din.close();
sc.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
catch(Exception e)
{
e.printS