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

问题描述

JAVA客户端与服务端通信问题 25C
public void sendCMD(final byte[] bufferfinal 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(buffer0temp);}                 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);}                服务端接收客户端发送的流                                不知道哪个地方有问题,请大神看一下上面贴上的代码是否有问题   谢谢

解决方案

代码太乱。能否贴上完整的代码?

客户端

 public class DayTimeClient {    //请求服务器,获得信息并输出    public static void main(String[] args) {        try (Socket socket = new Socket(""localhost""13)) {            socket.setSoTimeout(15000);            InputStream in = socket.getInputStream();            StringBuilder sb = new StringBuilder();            InputStreamReader reader = new InputStreamReader(inASCII"");            for (int c = reader.read(); c != -1 ; c = reader.read()) {                sb.append((char) c);            }            System.out.println(sb);        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }//end main()}

服务器

 public class DayTimeServer {    public static void main(String[] args) {        DayTimeServer dayTimeServer = new DayTimeServer();        dayTimeServer.start();    }//end main()    public void start(){        //线程池        ExecutorService pool = Executors.newFixedThreadPool(50);        //服务器Socket        ServerSocket serverSocket = null;        try {            serverSocket = new ServerSocket(13);            while(true){                //获取请求信息Socket                Socket connection = serverSocket.accept();                Callable<Void> task = new DayTimeTask(connection);                pool.submit(task);            }        } catch (IOException e) {            e.printStackTrace();        }finally{            try {                if(serverSocket != null) {serverSocket.close();}            } catch (IOException e) {}        }    }//end test()}

服务器用到的一个线程类

 public class DayTimeTask implements Callable<Void> {    private Socket socket;    public DayTimeTask (Socket socket) {        this.socket = socket;    }//end DayTimeTask()    @Override    public Void call() {        try {            Writer writer = new OutputStreamWriter(socket.getOutputStream()ASCII"");            Date now = new Date();            writer.write(now.toString()+""rn"");            writer.flush();        } catch(IOException e) {            System.err.println(e);        } finally {            try {                socket.close();            } catch (IOException e) {            }        }        return null;    }//end call()}

解决方案二:
给你个例子你参考一下吧

 Server.java: import java.io.*;import java.net.*; 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();        }    }}

解决方案三:
你代码贴不不全,不过JAVA的socket通信网上有很多例子的,耐心看懂就ok了 没什么难的

解决方案四:
你具体有什么问题呢?

解决方案五:
你代码不全,好像是定义的变量是局部变量。到其他函数,就没有用了。
参照“PB人生”

解决方案六:
去看下我的博客,有个nio实现通信

解决方案七:
问题好多。你这个还会粘包

解决方案八:
问题好多。你这个还会粘包

时间: 2024-09-10 14:10:59

java-JAVA客户端与服务端通信问题的相关文章

Android BLE与终端通信(三)——客户端与服务端通信过程以及实现数据通信

Android BLE与终端通信(三)--客户端与服务端通信过程以及实现数据通信 前面的终究只是小知识点,上不了台面,也只能算是起到一个科普的作用,而同步到实际的开发上去,今天就来延续前两篇实现蓝牙主从关系的客户端和服务端了,本文相关链接需要去google的API上查看,需要翻墙的 Bluetooth Low Energy:http://developer.android.com/guide/topics/connectivity/bluetooth-le.html 但是我们依然没有讲到BLE(

数据-android客户端与服务端通信安全问题

问题描述 android客户端与服务端通信安全问题 对于android请求服务端,经常会把接口暴露,例如http://www.myweb.com/api.php 别人就能通过这些个接口,使用浏览器的方式,对服务端恶意注入数据,大家有没有好的解决方法来解决这个问题啊 解决方案 首先,人家能注入什么呢?最多用浏览器实现客户端与服务器的通信 第二,加一下密,或者 直接上ssl 第三,即使加密,人家也可以反编译你的apk获取加密方法啊 第四,如果只是要防止浏览器访问,你可以在服务器端验证一下UA标识,只

android 客户端与服务端通信

问题描述 android 客户端与服务端通信 各位大神,我想用两个fragment制作两个页面,一个页面(fragment1)实现服务器与客户端的连接,另一个(fragment2)实现收发数据,但fragment2的代码应该要建立在客户端与服务器的连接上对吧,请问代码该怎样写呢?或者思路是怎样的? 解决方案 Android网络编程之TCP通信----简单客户端与服务端通信Android网络编程之UDP通信----简单客户端与服务端通信Android客户端与PHP服务端通信(二)---JSON交互

Python警察与小偷的实现之一客户端与服务端通信实例_python

本文实例讲述了Python警察与小偷的实现之一客户端与服务端通信,分享给大家供大家参考.具体方法分析如下: 该实例来源于ISCC 2012 破解关第四题 目的是通过逆向police,实现一个thief,能够与police进行通信 实际上就是一个RSA加密通信的例子,我们通过自己编写客户端和服务端来实现上面的thief和police的功能. 要通信,这们这次先通过python写出可以进行网络连接的客户端与服务端. 服务端代码如下: #!/usr/bin/env python import Sock

请问Socket底层是如何实现的,根据什么原理来进行客户端与服务端通信的?

问题描述 请问Socket底层是如何实现的,根据什么原理来进行客户端与服务端通信的? 解决方案 解决方案二:这应该是个计算机网络的问题了我理解socket实际上就是对tcp/ip协议的实现可能不是很准确解决方案三:回答第二问:基于通讯协议(tcp/ip,udp等等)来进行通讯的解决方案四:你可以看看网络的七层协议架构,我们常说的socket编程都是基于传输层进行编程的.解决方案五:你要问底层的话,这个问题可以轻易写出上千页的书籍了..比较轻描淡写的<TCP/IPIllustrated>(卷一协

简单的java socket客户端和服务端示例_java

客户端 复制代码 代码如下: import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket; public class MyClient {      public static void main(String[] args) throws Exception {          Socket socket = new Socke

使用Mina框架开发QQ Android 客户端(2) 客户端与服务端的通信

一个简单的例子,对Mina框架有了大体的了解,在上节的基础上,看看 怎样实现客户端与服务端的通信, 废话不多说了,直接看代码: public class Test { public static void main(String[] args) throws Exception{ SocketConnector connector = new NioSocketConnector(); IoFilter filter = new ProtocolCodecFilter(new TextLineC

客户端和服务端通过建立socket通信,协议是tcp/ip

问题描述 客户端和服务端通过建立socket通信,协议是tcp/ip 有一个问题咨询:一个客户端和一个服务端通过tcp/ip连接(之间建立socket通信),在不断网的情况下,服务端关闭,客户端报警,重新开启服务器,客户端能够重新连接上服务端,但是如果拔掉网线,客户端就连接不上服务端了,但从服务端发送过来的数据还是可以读到,可是从客户端发送的数据不能到达服务端,这是为什么??? 解决方案 TCP的客户端和服务端通信socket 客户端和服务端的TCP基本通信简单的Socket通信客户端和服务端

信息通讯-java客户端 c#服务端(同一台电脑)进行socket通讯 客户端发送文本消息到服务端

问题描述 java客户端 c#服务端(同一台电脑)进行socket通讯 客户端发送文本消息到服务端 socket连接部分可以省略 只要客户端的发送数据部分和服务端的接收数据部分我主要不知道java和C#的字符集以及该用什么方法比较好 解决方案 C#可以用system.text.encoding命名空间下的Encoding.GetEncoding(字符串编码名).GetBytes/GetString编码解码.其中编码名支持常见的编码,比如utf gb2312 unicode等等. 解决方案二: c