为了账号安全,请及时绑定邮箱和手机立即绑定

客户端是不是这么接收服务器端的消息的

package test;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Scanner;

public class ClinetSocket extends Thread {
 private Socket socket;
 public static void main(String[] args) throws UnknownHostException, IOException, ClassNotFoundException{
  new ClinetSocket().login();
 }
 
 public void login() throws UnknownHostException, IOException, ClassNotFoundException{
  Scanner sc=new Scanner(System.in);
  System.out.print("请输入您的昵称:");
  User u= new User(sc.nextLine());
  Socket socket=new Socket("127.0.0.1", 10);
  OutputStream output= socket.getOutputStream();
  ObjectOutputStream objout=new ObjectOutputStream(output);
  objout.writeObject(u);
  this.socket=socket;
  this.start();
  /*while(true){
   InputStream input= socket.getInputStream();
   ObjectInputStream objInput=new ObjectInputStream(input);
   List list= (List)objInput.readObject();
   if(list!==null&&!list.isEmpty()){
    System.out.println("当前在线用户:");
    for(int i=0;i<list.size();i++){
     
    }
   }
  }*/
  while(true){
   System.out.print("您说:");
   String mesg= sc.nextLine();
   output.write(mesg.getBytes());
  }
 }
 
 public void run(){
  InputStream input=null;
  try {
   input= this.socket.getInputStream();
   while(true){
    byte[] b=new byte[input.available()];
    input.read(b);
    if(b.length>0){
     System.out.println("\n"+new String(b));
    }
   }
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

class User implements Serializable{
 private String name;
 public User(String name){
  this.name=name;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}

这是客户端代码,我使用了一个线程去无线等待接受服务器消息,不知道实际的应用中是不是这么使用线程来接受服务器端发送的消息

正在回答

3 回答

客户端使用线程无限等待接受服务器消息不太适合,一般也不会这么做,客户端不需要使用线程

0 回复 有任何疑惑可以回复我~

例如:myarr[3][2],那么第一个索引值为0-2,第二个索引值为0-1,即第一个myarr[0][0],最后一个为myarr[2][1]

fbiidhkyiayzgvalhkvzvkoobwfakothajnynyybweu

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

客户端是不是这么接收服务器端的消息的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信