/* 创建客户端
*1.建立连接:使用Socket创建客户端+服务器的地址和端口
*2.操作输入输出流操作
*3.释放资源
package TCP_基本步骤;
/* 创建客户端
*1.建立连接:使用Socket创建客户端+服务器的地址和端口
*2.操作输入输出流操作
*3.释放资源
*/
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
private int port ;
private String ip;
private Socket client;
private DataOutputStream out;
public Client(String ip,int port) {
this.ip=ip;
this.port=port;
}
public void test() {
try {
//建立连接:使用Socket创建客户端+服务器的地址和端口
client =new Socket(ip,port);
//.操作输入输出流操作
out =new DataOutputStream(new BufferedOutputStream(client.getOutputStream()));
BufferedReader read =new BufferedReader(new InputStreamReader(System.in));
while(true) {
System.out.println(read.readLine());
out.writeUTF(read.readLine());
//释放资源
out.flush();
if(read.readLine().equals("bye")) {
out.close();
client.close();
break;
}
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("客户端开始工作");
Client run=new Client("localhost", 8888);
run.test();
}
}
*/
/*创建服务器
- 指定端口使用ServerSocket(port) 创建服务器
- 阻塞式等待连接
- 操作:输入输出操作
- 释放资源
*/
package TCP_基本步骤;
/*创建服务器
* 指定端口使用ServerSocket(port) 创建服务器
* 阻塞式等待连接
* 操作:输入输出操作
* 释放资源
*/
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private ServerSocket server ;
private Socket client;
private DataInputStream in;
private int port;
Server(int port){
this.port =port;
}
public void testserver() {
try {
//指定端口使用ServerSocket(port) 创建服务器
server=new ServerSocket(port);
// 阻塞式等待连接
client =server.accept();
System.out.println("建立了一个连接");
//操作:输入输出操作
in =new DataInputStream(client.getInputStream());
while(true) {
String buf=in.readUTF();
System.out.println(buf);
if(buf.equals("bye")) {
break;
}
}
//释放资源
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("服务器开始工作");
Server run =new Server(8888);
run.testserver();
}
}
还有问题:每输入两次,只在服务器显示一次,应该是客户端的问题,日后再改!