将由键盘输入改为传入一个字符串public static void main(String[] args) throws Exception {
server = new Socket(InetAddress.getLocalHost(), 5678);
BufferedReader in = new BufferedReader(new InputStreamReader(server
.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in)); while (true) {
String str = wt.readLine();
out.println(str);
out.flush();
if (str.equals("end")) {
break;
}
System.out.println(in.readLine());
}
server.close();
}
server = new Socket(InetAddress.getLocalHost(), 5678);
BufferedReader in = new BufferedReader(new InputStreamReader(server
.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in)); while (true) {
String str = wt.readLine();
out.println(str);
out.flush();
if (str.equals("end")) {
break;
}
System.out.println(in.readLine());
}
server.close();
}
晕!代码中颜色没有作用
麻烦哪位高手帮帮忙!!!
麻烦哪位高手帮帮忙!!!
public class SocketClient {
static Logger log = Logger.getLogger(SocketClient.class.getName()); // 日志记录信息
private String hostName;
private int portNum;
private int delaySecond; // 发文接收返回报文延时 public SocketClient() {
this.hostName = "192.168.0.123";
this.portNum = 5479;
this.delaySecond = 50000;
} private Socket getSocket() {
Socket socket = null;
try {
socket = new Socket(hostName, portNum);
} catch (UnknownHostException e) {
System.out.println("-->未知的主机名:" + hostName + " 异常");
} catch (IOException e) {
System.out.println("-hostName=" + hostName + " portNum=" + portNum
+ "---->IO异常错误" + e.getMessage());
}
return socket;
} public String sendMessage(String strMessage) {
String str = "";
String serverString = "";
Socket socket;
try {
socket = getSocket();
// socket.setKeepAlive(true);
if (socket == null) { // 未能得到指定的Socket对象Socket通讯为空
return "0001";
}
PrintWriter out = new PrintWriter(socket.getOutputStream());
// log.info("---->发送报文="+strMessage);
out.println("CHK;0;"+strMessage);
out.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
long sendTime = System.currentTimeMillis();
long receiveTime = System.currentTimeMillis();
boolean received = false; // 成功接收报文
boolean delayTooLong = false;
serverString = null;
while (!received && !delayTooLong) {
if (socket.getInputStream().available() > 0) {
// serverString = in.readLine();
char tagChar[];
tagChar = new char[1024];
int len;
String temp;
String rev = "";
if ((len = in.read(tagChar)) != -1) {
temp = new String(tagChar, 0, len);
rev += temp;
temp = null;
}
serverString = rev;
}
receiveTime = System.currentTimeMillis();
if (serverString != null)
received = true; // 字符串不为空,接收成功
if ((receiveTime - sendTime) > delaySecond)
delayTooLong = true; // 接收等待时间过长,超时
} in.close();
out.close();
str = serverString;
if (delayTooLong)
str = "2190"; // 超时标志为真,返回超时码
// if (
// ..} in.close();
out.close();
str = serverString;
if (delayTooLong)
str = "2190"; // 超时标志为真,返回超时码
if (!received)
str = "2190";
socket.close();
} catch (UnknownHostException e) {
log.error("---->出现未知主机错误! 主机信息=" + this.hostName + " 端口号="
+ this.portNum + " 出错信息=" + e.getMessage());
str = "2191";
// System.exit(1);
} catch (IOException e) {
log.error("---->出现IO异常! 主机信息=" + this.hostName + " 端口号="
+ this.portNum + " 出错信息=" + e.getMessage());
e.printStackTrace();
str = "2191";
} catch (Exception e) {
str = "2177";
log.error("---->出现未知异常" + e.getMessage());
} finally {
socket = null;
str.trim();
// log.info("--->返回的socket通讯字符串="+str); }
return str;
}}