java 与 .net socket_【原创】java socket 和.net socket 通讯 demo

importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.Socket;importjava.net.UnknownHostException;importjava.util.ArrayList;importjava.util.List;import org.codehaus.jackson.*;importorg.codehaus.jackson.map.ObjectMapper;public classMain {private static JsonGenerator jsonGenerator = null;private static ObjectMapper objectMapper = null;public static void main(String[] args) throwsIOException {

objectMapper= newObjectMapper();

jsonGenerator=objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);

List list = new ArrayList();

list.clear();

Sms model=newSms();

model.setContent("内容");

model.setMb("15504718283");

model.setPb("123663");

list.add(model);

list.add(model);

System.out.println(""+list.size());

String str=objectMapper.writeValueAsString(list);

System.out.println(str);

String bs=Base64.encode(str.getBytes("UTF-8"));

System.out.println(bs);

SendMsg(bs+"##");

}public static void SendMsg(String str) throwsUnknownHostException, IOException

{

Socket socket=new Socket("127.0.0.1",2012);

BufferedReader sin=new BufferedReader(newInputStreamReader(System.in));

PrintWriter os=newPrintWriter(socket.getOutputStream());

BufferedReader is=new BufferedReader(newInputStreamReader(socket.getInputStream()));

String readline="yes";while(!readline.equals("bye")){

os.println(str);

os.flush();

System.out.println("Client:"+str);

System.out.println("Server:"+is.readLine());

readline=sin.readLine();

}

os.close();//关闭Socket输出流

is.close(); //关闭Socket输入流

socket.close(); //关闭Socket

}/*(non-Java-doc)

* @see java.lang.Object#Object()*/

publicMain() {super();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于IPv6的Socket通信(TCP)与基于IPv4的Socket通信(TCP)基本类似,只是需要使用IPv6地址和IPv6协议族。下面是一个简单的Java示例代码,实现基于IPv6的Socket通信: ```java import java.io.*; import java.net.*; public class IPv6SocketDemo { public static void main(String[] args) { try { // 创建一个IPv6地址对象 InetAddress ipv6Addr = InetAddress.getByName("::1"); // 创建一个IPv6 Socket对象 Socket socket = new Socket(ipv6Addr, 8080); // 发送数据 OutputStream outputStream = socket.getOutputStream(); outputStream.write("Hello, IPv6 Socket!".getBytes()); // 接收数据 InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); String msg = new String(buffer, 0, len); System.out.println(msg); // 关闭连接 socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的示例代码中,我们首先通过`InetAddress.getByName()`方法创建了一个IPv6地址对象,然后再使用这个地址和端口号创建一个IPv6 Socket对象。接着,我们向服务器发送了一条消息,然后从服务器接收了一条消息,并将其打印出来。最后,我们关闭了Socket连接。 需要注意的是,在实际使用中,我们还需要考虑IPv6和IPv4之间的互通性问题。如果我们的客户端和服务器分别使用IPv6和IPv4地址,那么它们之间的通信可能会出现问题。为了解决这个问题,我们可以使用IPv4映射到IPv6的地址,或者使用IPv4兼容模式。具体实现方式可以参考相关的文档和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值