TCP
import java.net.*;
import java.io.*;
public class TCPServer2{
public static void main(String[]args)throws Exception{
ServerSocket s=new ServerSocket(6666);
while(true){
Socket ss=s.accept();
DataInputStream dis=new DataInputStream(ss.getInputStream());
System.out.println(dis.readUTF()); //阻塞式
dis.close();
ss.close();
System.out.println("A client connected!");
}
}
}
import java.net.*;
import java.io.*;
public class TCPClient2{
public static void main(String[] args)throws Exception{
Socket s=new Socket("127.0.0.1",6666);
OutputStream os=s.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
Thread.sleep(3000);
dos.writeUTF("Hello Server");
dos.flush();
dos.close();
s.close();
}
}
UDP
利用UDP传递字符串:
import java.net.*;
public class TestUDPServer{
public static void main(String []args) throws Exception{
byte buf[]=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
DatagramSocket ds=new DatagramSocket(1234);
while(true){
ds.receive(dp);
System.out.println(new String(buf,0,dp.getLength())); //dp.getLength() !!!
}
}
}
import java.net.*;
public class TestUDPClient{
public static void main(String[]args) throws Exception{
byte buf[]=(new String("hello")).getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",1234)); //目的主机IP和端口
DatagramSocket ds=new DatagramSocket(9999); //本机端口
ds.send(dp);
ds.close();
}
}
利用UDP传递long型数值:
import java.net.*;
import java.io.*;
public class TestUDPServer2{
public static void main(String[] args) throws Exception{
byte buf[]=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,0,buf.length);
DatagramSocket ds=new DatagramSocket(1234);
while(true){
ds.receive(dp);
ByteArrayInputStream bais=new ByteArrayInputStream(buf);
DataInputStream dis=new DataInputStream(bais);
System.out.println(dis.readLong());
}
}
}
import java.net.*;
import java.io.*;
public class TestUDPClient2{
public static void main(String[] args)throws Exception{
long n=1000;
ByteArrayOutputStream baos=new ByteArrayOutputStream();
DataOutputStream dos=new DataOutputStream(baos);
dos.writeLong(n);
byte buf[]=baos.toByteArray();
DatagramPacket dp=new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",1234));
DatagramSocket ds=new DatagramSocket(8888);
ds.send(dp);
ds.close();
}
}