日期:2014-05-20  浏览次数:20767 次

请教一个Java的服务器的源代码实施方案.
高手,您好:
        我写了一个IM的通信系统,系统结构为:
        两台服务器,一个C端的用户端.
        在这个场景下,我有一个系统业务需要C端写出数据给两台服务器,两台服务器配合进行C端的系统功能的实现.
        现在我在C端向两台服务器发出了服务的请求报文,并且两台服务器经过计算进行了C端用户的要求结果的返回值的写出.
        现在出现的问题是:
        两台服务器的回写的数据在C端接收到后,出现了“数据混淆”.
        现场如下:
        (C端的console窗口打印结果)    
        -=-=-=-=-=-=6丗6丗SportNeedOrders丠Cus丠99999999丠IneedOrders丮9丗D丗192.168.1.3丗ManageOurSysFuctionRightsConfirm
C端接收到的第三字段:SocketInfo----->SportNeedOrders丠Cus丠99999999丠IneedOrders丮9
C端接收到的D端的线程:¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥:ManageOurSysFuctionRightsConfirm
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$C端接收到S端的服务申请,打开:“提示用户S端发送了本单单号的第六分支”线程进行S端的服务提供
        我的服务器,第一台服务器的写出数据的代码现场如下:
        
D_port_Calc_The_CustomerSysFuctionUserRightsCode cjco = new D_port_Calc_The_CustomerSysFuctionUserRightsCode();
String MyCustomerServiceOrdernum = cjco.getMyUserRights(MyUserRights);
System.out.println(MyCustomerServiceOrdernum);
   SocketClient so = new SocketClient(MyObjIP,5555);
String mycustomerordernum = "6丗6丗"+"ok"+"丠"+"Cus"+"丠"+"99999999"+"丠"+"IneedOrders丮9" +"丗"+"D";
System.out.println("I'm Working on my task");
System.out.println("加油!!加油!!"+mycustomerordernum);
so.writeStr(mycustomerordernum, "ManageOurAuthorizeRightsConfirmCode");
so.getMyResourceBack();

       我的第二台服务器的写出数据的代码现场为:
       
SocketClient so = new SocketClient(MyObjIP,5555);
String str8 = "6丗6丗"+"SportNeedOrders"+"丠"+"Cus"+"丠"+"99999999"+"丠"+"IneedOrders丮9" +"丗"+"D";
so.writeStr(str8,"GetOurbrandServiceWorkValue");
so.getMyResourceBack();
System.out.println("加油!!加油!!"+str8);
System.out.println("OKay!!I'm Working on My task");

       但是我在C端接收到的数据,就是“混淆后的”数据:
       -----------------------------------------------------------------
       -=-=-=-=-=-=6丗6丗SportNeedOrders丠Cus丠99999999丠IneedOrders丮9丗D丗192.168.1.3丗ManageOurSysFuctionRightsConfirm
       -----------------------------------------------------------------
       为了方便调试,我是将上面的“SocketClient”,这个Socket的API,进行了“末尾的添加本通信系统功能申请类型”的类型名的修改的.
       我的SocketClient这个通信的API的代码如下:
       
package d_port_package;
 
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
 
public class SocketClient {
 
    public Socket getS() {
        return s;
    }
 
    public void setS(Socket s) {
        this.s = s;
    }
 
    private Socket s;
    private InputStream in;
    private OutputStream out;
    private BufferedInputStream inByte;
    private OutputStream outByte;
    private BufferedReader inStr;
    private PrintWriter outStr;
     
    private long size = 0;
 
    public SocketClient(String ip, int port) {
        try {
            s = new Socket(ip, port);
 
            in = s.getInputStream();
            out = s.getOutputStream();
 
            inByte = new BufferedInputStream(in);
            outByte = out;
 
            inStr = new BufferedReader(new InputStreamReader(in));
            outStr = new PrintWriter(new OutputStreamWriter(out));
        } catch (Exception e) {
            e.printStackTrace();