Socket
好像能理解成 ip
地址和端口号;
服务端
- 服务器建立通信ServerSocket
- 服务器建立Socket接收客户端连接
- 建立IO输入流读取客户端发送的数据
- 建立IO输出流向客户端发送数据消息 ```java package Socket;
import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket;
public class Server { public static void main(String[] args) { try{ //打开8888端口 ServerSocket ss = new ServerSocket(8888);
//在8888上监听请求
System.out.println("监听端口号8888");
Socket s = ss.accept();
//打开输入流
InputStream is = s.getInputStream();
//把输入流封装在DataInputStream里
DataInputStream dis = new DataInputStream(is);
//用readUTF读取字符串
String msg = dis.readUTF();
System.out.println(msg);
dis.close();
s.close();
ss.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
客户端
- 创建Socket通信,设置通信服务器的IP和Port
- 建立IO输出流向服务器发送数据消息
- 建立IO输入流读取服务器发送来的数据消息
```java
package Socket;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
try{
Socket s = new Socket("127.0.0.1", 8888);
//打开输出流
OutputStream os = s.getOutputStream();
//把输出流封装在DataOutputStream中
DataOutputStream dos = new DataOutputStream(os);
Scanner sc = new Scanner(System.in);
String str = sc.next();
dos.writeUTF(str);
dos.writeUTF("hello this is from client");
dos.close();
s.close();
}catch(IOException e){
e.printStackTrace();
}
}
}