UDP
服务器端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
//服务端
public class getUDPss {
public static void main(String[] args) throws Exception {
DatagramSocket socket=new DatagramSocket(8998);//绑定8998端口
byte[] bytes=new byte[1024];
DatagramPacket packet=new DatagramPacket(bytes, bytes.length);
socket.receive(packet);
System.out.println(new String(packet.getData()));
socket.close();
}
}
客户端
//客户端
public class UDPSS {
public static void main(String[] args) throws Exception {
DatagramSocket socket=new DatagramSocket();
byte[] bytes="213123".getBytes();
InetAddress address=InetAddress.getLocalHost();
DatagramPacket pack=new DatagramPacket(bytes, bytes.length, address,8998);
socket.send(pack);
}
}
TCP
服务器
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
//服务端
public class ServerSocketss {
public static void main(String[] args) throws Exception {
ServerSocket server=new ServerSocket(8888);
System.out.println("服务端开启 等待客户端连接");
try {
while(true) {
Socket sock=server.accept();
/*这边不能用以下的方法 因为这个 input是从server.accept的sock得来 它的input.read(buf) 要等到server.close才能变为-1 所以不能用while得到 但是客户端可以用while 因为它不是用server得到的
InputStream input=sock.getInputStream();
byte buf[] = new byte[1024];
int len = 0;
while((len=(input.read(buf)))>0){
System.out.println(new String(buf));
}
*/
InputStream input=sock.getInputStream();
byte buf[] = new byte[1024];
input.read(buf);
System.out.println(new String(buf));
OutputStream output=sock.getOutputStream();
output.write("我是服务端 我接受到你的数据啦".getBytes());
output.write("我是服务端 我接受到你的数据啦1234".getBytes());
output.close();
input.close();
sock.close();
server.close();
}
}catch (Exception e) {
// TODO: handle exception
System.out.println("已经关闭");
}
}
}
服务器端
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
//客户端
public class sockss {
public static void main(String[] args) throws Exception {
System.out.println("我是客户端 正在尝试连接呢");
Socket sock=new Socket("127.0.0.1",8888);
System.out.println("连接成功了呢");
OutputStream output=sock.getOutputStream();
output.write("some数据".getBytes());
output.write("some数据123456789".getBytes());
output.write("some数据".getBytes());
output.write("some数据123456789".getBytes());
InputStream input=sock.getInputStream();
byte buf[] = new byte[1024];
int len = 0;
while((len=(input.read(buf)))>0){
System.out.println(new String(buf));
}
input.close();
output.close();
sock.close();
}
}