今天跟大家分享一下客户端和服务器的案例:
package server.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
public MyServer(){
try {
//开启服务器,并开放8088端口
ServerSocket server = new ServerSocket(8088);
//监听端口,如果有客户端连接到服务器,将客户端连接信息封装成socket对象
Socket socket = server.accept();
//从socket中得到读取流,用以接收客户端的数据
InputStream in = socket.getInputStream();
//从socket中得到写入流,用以发送数据给客户端
OutputStream out = socket.getOutputStream();
byte[]b = new byte[1024];
//将客户端发送给服务器的数据读取到byte数组
in.read(b);
String str = new String(b).trim();
System.out.println("客户端发送:"+str);
//向客户端发送数据
out.write("明天大阅兵".getBytes());
out.flush();
out.close();
in.close();
//关闭socket
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MyServer m = new MyServer();
}
}
package client.test;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import javax.swing.JOptionPane;
public class MyClient {
public MyClient(){
String str = JOptionPane.showInputDialog(null,"请输入消息");
try {
//创建socket,连接指定IP和指定端口的服务器
Socket s = new Socket("127.0.0.1",8088);
//得到读取流,用于接收服务器消息
InputStream in = s.getInputStream();
//得到写入流,用于发送消息给服务器
OutputStream out = s.getOutputStream();
//将数据发送给服务器
out.write(str.getBytes());
out.flush();
byte[]b = new byte[1024];
//读取服务器数据
in.read(b);
String info = new String(b).trim();
JOptionPane.showMessageDialog(null, "服务器回复:"+info);
out.close();
in.close();
//关闭socket
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
MyClient m = new MyClient();
}
}