java使用多线程来实现服务器与客户端

java使用多线程来实现服务器与客户端

话不多说直接上代码加粗样式
客户端代码(发送请求):
public class SOCKET {
public static void main(String[] args) {
Socket soc=null;
OutputStream os =null;
InputStream is=null;
BufferedReader br=null;
try {
//首先你必须知道服务器端的ip地址(ip地址的第三个数字 即235必须要与服务器端一致,不然无法访问)与端口号 这是服务器端定义的
soc=new Socket(“10.131.235.127”,666);
//outputstream 是输出流 向服务器端发送文字
os=soc.getOutputStream();
os.write(“我是华哥,我是华哥,收到请回复”.getBytes());
//在使用一次输出流之后,若想使用输入流必须要使用shutdown方法,否则输入流无法实现
soc.shutdownOutput();
//输出流 获取服务器端给你返回的数据
is=soc.getInputStream();
br=new BufferedReader(new InputStreamReader(is));
System.out.println(br.readLine());
os.flush();
soc.close();
is.close();
} 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) throws IOException {
ServerSocket serversocket =new ServerSocket(666);
while(true) {
Socket socket =serversocket.accept();
//启动线程## 标题
new CaluteLength(socket).start();
}
}
线程实现类:
public class CaluteLength extends Thread {
private Socket socket;
public CaluteLength(Socket socket) {
this.socket = socket;
}
//多线程的核心就是改写run方法
@Override
public void run() {
InputStream inputstream = null;
OutputStream outputstream = null;
InputStream is = null;
try {
//在收到客户端发来的请求后,通过输出流反馈数据
outputstream = socket.getOutputStream();
outputstream.write(“我是华哥,欢迎你的访问!!”.getBytes());
//输入流与输出流交替,必须使用shutdown方法
socket.shutdownOutput();
inputstream = socket.getInputStream();
} catch (IOException e1) {
}
try {
is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
System.out.println(br.readLine());
} catch (IOException e) {
}
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值