package com.qf.chao16_3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class SocketThread extends Thread {
private Socket socket;
public SocketThread(Socket socket) {
this.socket=socket;
}
@Override
public void run() {
if(socket!=null){
BufferedReader br=null;
//InputStream is;
try {
InputStream is = socket.getInputStream();
br=new BufferedReader(new InputStreamReader(is,"utf-8"));
while(true){
String data=br.readLine();
if(data==null){
break;
}
System.out.println(socket.getInetAddress()+"说:"+data);
if(data.equals("886")||data.equals("byebye")){
break;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
br.close();
socket.close();
System.out.println(socket.getInetAddress()+"退出来...");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
package com.qf.chao16_3;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;
/*
* tcp客户端
*/
public class TcpClient {
public static void main(String[] args)throws Exception {
//创建Socket
Socket socket =new Socket("192.168.137.1", 10086);
//获取输出流
OutputStream os=socket.getOutputStream();
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os,"utf-8"));
//控制台输入
Scanner input =new Scanner(System.in);
while(true){
String data =input.nextLine();
bw.write(data);
bw.newLine();//换行符。
bw.flush();
if(data.equals("886")||data.equals("byebye")){
break;
}
}
//关闭
bw.close();
socket.close();
}
}
package com.qf.chao16_3;
import java.net.ServerSocket;
import java.net.Socket;
/*
* 实现多个tcp实现多个客户的请求
*/
public class Tcpserver {
public static void main(String[] args) throws Exception{
//创建ServerSocket
ServerSocket listener=new ServerSocket(10086);
//调用accept()接受客户端的请求
System.out.println("服务器已经启动");
while(true){
Socket socket =listener.accept();
System.out.println(socket.getInetAddress()+"进来了...");
//创建线程对象
new SocketThread(socket).start();
}
}
}
模仿一个对话。
最新推荐文章于 2024-10-14 20:53:59 发布