开发者社区> 问答> 正文

JAVA客户端与服务端通信问题

public void sendCMD(final byte[] buffer,final String ip)
{
    new Thread(new Runnable() {  
        @Override
        public void run() {
            Socket socket=null;
            try{
                 socket = new Socket(InetAddress.getByName(ip), Proxys.PORT_RECEIVE + Max); 
                 InputStream inputStream = new ByteArrayInputStream(buffer);
                 OutputStream outputStream = socket.getOutputStream();
                 byte buffer [] = new byte[1024];
                 int temp=0;
                 while((temp = inputStream.read(buffer)) != -1){
                     outputStream.write(buffer,0,temp);}
                 outputStream.flush();
                    }
                            客户端发送指令给服务端
      public void run() {
    // 消息循环
     ServerSocket serverSocket = null;  
     Socket socket = null;  
 try {  
     //定义TCP监听  
     serverSocket = new ServerSocket(Proxys.PORT_RECEIVE + con.Max);  
     socket = serverSocket.accept(); 
     int temp=0;
     //定义缓冲区  
     byte[] buffer=new byte[1024];  
     String str="";
     //定义接收数据包  
     InputStream inputStream = socket.getInputStream();  
     while ((temp = inputStream.read(buffer)) != -1) { 
         str=new String(buffer, 0, temp);}

服务端接收客户端发送的流 不知道哪个地方有问题,请大神看一下上面贴上的代码是否有问题?

展开
收起
蛮大人123 2016-03-13 13:47:00 2236 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    给你个小例子参考一下吧:

    public class Server{       
        publicstatic void main(String[] args){             
            try{
                ServerSocket s = newServerSocket(9000);
                while (true) {
                    Socket incoming =s.accept();
                    try{
                        FileInputStreamfstream = new FileInputStream("Server.java"); //假设输入文件为Server.java
                        DataInputStream in =new DataInputStream(fstream);
                        BufferedReaderbr = new BufferedReader(new InputStreamReader(in));
                        OutputStreamostream = incoming.getOutputStream();
                        PrintWriterout = new PrintWriter(ostream, true);
                        String strLine;
                        while ((strLine =br.readLine()) != null) {
                            out.println(strLine);
                        }
                        in.close();
                    } finally {
                        incoming.close();
                    }
                } 
            }catch (Exception e){ 
                e.printStackTrace();
            }
        }
    }

    客户端Client.java:

    import java.io.*;
    import java.net.*;
    import java.util.*; 
    public class Client{       
        publicstatic void main(String[] args){
            try {
                Sockets = new Socket("localhost", 9000);
                try {
                    InputStreaminStream = s.getInputStream();
                    Scannerin = new Scanner(inStream);
                    PrintWriter out = newPrintWriter("test.txt");//假设输出文件为test.txt
                    while(in.hasNextLine()){
                        Stringline = in.nextLine();
                        System.out.println(line);
                        out.println(line);
                    }
                    out.close();
                } finally {
                    s.close();
                } 
            } catch(IOException e) {
                e.printStackTrace();
            }
        }
    }
    2019-07-17 19:02:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载