Socket通信——Java语言

来源:互联网 发布:mac地址认证 编辑:程序博客网 时间:2024/05/22 15:37

Java中也提供了基于TCP和UDP的Socket,Java对于socket的封装更加“高层”,

使用起来比起C语言要简单一些,当然随之而来的是灵活性的降低,不过在很多情况下java的socket已经够用了

直接看代码

TCP Socket

TCP Socketimport java.io.DataInputStream;import java.io.DataOutput;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class TCPServer {public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(6666);while (true) {Socket s = ss.accept();DataInputStream dis = new DataInputStream(s.getInputStream());DataOutput dos = new DataOutputStream(s.getOutputStream());System.out.print(dis.readUTF());System.out.println(dis.readUTF());dos.writeUTF("bye");s.close();}}}import java.io.DataInputStream;import java.io.DataOutput;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;public class TCPClient {public static void main(String[] args) throws UnknownHostException, IOException {Socket s = new Socket("127.0.0.1",6666);DataInputStream dis = new DataInputStream(s.getInputStream());DataOutput dos = new DataOutputStream(s.getOutputStream());dos.writeUTF("hello ");dos.writeUTF("server");System.out.println(dis.readUTF());s.close();}}

UDP Socket

import java.io.ByteArrayInputStream;import java.io.DataInputStream;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UDPServer {public static void main(String[] args) throws IOException {byte buf[] = new byte[1024];DatagramPacket dp = new DatagramPacket(buf, buf.length);DatagramSocket ds = new DatagramSocket(5678);while(true){ds.receive(dp);ByteArrayInputStream bais = new ByteArrayInputStream(buf);DataInputStream dis = new DataInputStream(bais);System.out.println(dis.readLong());}}}import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;import java.net.UnknownHostException;public class UDPClient {public static void main(String[] args) throws UnknownHostException, IOException {long n = 10000L;ByteArrayOutputStream baos = new ByteArrayOutputStream();DataOutputStream dos = new DataOutputStream(baos);dos.writeLong(n);byte[] buf = baos.toByteArray();System.out.println(buf.length);DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1", 5678)   );DatagramSocket ds = new DatagramSocket(9999);ds.send(dp);ds.close();}}

说明:

本文由giantpoplar发表于CSDN

文章地址 http://blog.csdn.net/giantpoplar/article/details/47657325

转载请保留本说明



2 0