新太IVR平台,现在有一个问题,当服务端接收数据后,网关程序一闪就关闭了,不知道错在哪里,但用这句就没问题,但收不到客户端发送的数据,这个网关就失去意义了dos.writeUTF("你好"); 很郁闷!服务端代码:
package com;import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.Connection;import com.DatabaseConn;
import app.Add;import org.apache.log4j.Logger;public class S { public static void ServerListen()
{
InputStream in = null; 
    OutputStream out = null;
    ServerSocket ss;
try
{
ss = new ServerSocket(7879);
while(true) {
      Socket socket = ss.accept();
      in = socket.getInputStream(); 
      out = socket.getOutputStream();
      DataOutputStream dos = new DataOutputStream(out);
      DataInputStream dis = new DataInputStream(in);
      String s = null;//       dos.writeUTF("你好"); 
      dos.writeUTF(dis.readUTF()); 
      
      dis.close();
      dos.close();
      socket.close();
      }
}
catch (IOException e)
{
System.out.println(e.getMessage());
logger.debug(e.getMessage());
}
       }
    public static void main(String[] args) throws Exception {
     ServerListen();    }}

解决方案 »

  1.   

    socket.close();
    ???
    public class ReceiveServer {
    final int RECEIVE_PORT = 9090;
    public ReceiveServer() {
    ServerSocket rServer = null; Socket request = null; 
    Thread receiveThread = null;
    try {
    rServer = new ServerSocket(RECEIVE_PORT);

    System.out.println("Welcome to the server!");
    System.out.println(new Date());
    System.out.println("The server is ready!");
    System.out.println("Port: " + RECEIVE_PORT);
    while (true) { 
    request = rServer.accept();

    receiveThread = new ServerThread(request);

    receiveThread.start();

    }
    } catch (IOException e) {
    System.out.println(e.getMessage());
    }
    } public static void main(String args[]) {
    new ReceiveServer();

    }