2015年1月11日15:34:13 天气阴
客户端实现的步骤:
1.创建客户端Socket指定要连接的服务器ip和端口
2.通过客户端Socket建立输入输出的流管道
3.关闭释放资源(按倒序即可)
Client.java
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
/**
* Socket通信客户端
*/
public class Client {
public static void main(String[] args) throws Exception {
//1.创建客户端Socket指定要连接的服务器ip和端口
Socket socket = new Socket("192.168.10.20", 8989);
//2.通过客户端Socket建立输入输出的流管道
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("你好,我是客户端!");
DataInputStream dis = new DataInputStream(socket.getInputStream());
String msg = dis.readUTF();
System.out.println("服务器说:"+ msg);
//关闭释放资源
dis.close();
dos.close();
socket.close();
}
}
服务器端实现的步骤:
1.创建服务器端,并且指定监听端口
2.接收客户端的请求
3.通过客户端Socket获取对应客户端的输入输出流
4.关闭释放资源(按倒序即可)
Server.java
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Socket通信 服务器端
*/
public class Server {
public static void main(String[] args) throws Exception {
//1.创建服务器端,并且指定监听端口
ServerSocket server = new ServerSocket(8989);
System.out.println("服务器启动...");
//2.接收客户端的请求
Socket socket = server.accept();
//3.通过客户端Socket获取对应客户端的输入输出流
InputStream in = socket.getInputStream();
DataInputStream dis = new DataInputStream(in);
String msg = dis.readUTF();
System.out.println("客户端说:"+msg);
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("收到!");
//4.关闭释放资源(按倒序即可)
dis.close();
dos.close();
socket.close();
server.close();
}
}
ps:
1.为了代码直观,这里的异常直接抛出,而不是用try ...catch...
2.应该使用DataInputStream和DataOutputStream简化读写的过程,因为字节转为String的过程麻烦点。
3.这是没有涉及到磁盘文件的读写,只是通过socket来获得输入输出流即可