客户端和服务端通信会一直生成新的连接,而不是单个连接怎么办

2017-05-06 02:34
package com.cm.activity;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class SocketUtils {

	private final String IP = "192.168.1.100";
	private final int PORT = 1111;

	private static SocketUtils mInatance;
	public Socket socket;
	private SocketUtils() {

	}

	public static SocketUtils getInstance() {
		if (mInatance == null) {
			mInatance = new SocketUtils();
		}
		return mInatance;
	}

	public boolean isConnected() {
		return socket != null && socket.isConnected();
	}

	public boolean connect() {
		if (isConnected()) {
			return true;
		}

		try {
			socket = new Socket(IP, PORT);
			return socket.isConnected();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return false;
	}

	public String send(String msg) {
		try {
			socket = new Socket(IP, PORT);

			OutputStream outputStream = socket.getOutputStream();
			outputStream.write(msg.getBytes("UTF-8"));
			// BufferedReader input = new BufferedReader(new InputStreamReader(
			// socket.getInputStream()));
			// String message = input.readLine();
			// socket.close();

			return "";
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return null;

	}
}


客户端和服务端通信会一直生成新的连接,而不是单个连接怎么办0

是这一个链接的问题吗?怎么解决

回复讨论(解决方案)

send里边的socket删掉啊,既然已经有一个全局的socket了,就用全局的去获取I/O就可以了,不用每次发送的时候获取实例。你每次发送数据都会获取一个socket的实例,当然就会生成新的连接了。
楼上正解。。我去,需要6个字符串