Java心得28

来源:互联网 发布:mac视网膜壁纸 编辑:程序博客网 时间:2024/05/19 05:39

                今天跟大家分享一下客户端和服务器的案例:

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();


}


}

0 0
原创粉丝点击