package Package;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class MyClient {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket client = new Socket("localhost", 8888);
//StringBuilder tmp = new StringBuilder();
while(true)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String obuffer = br.readLine();
DataOutputStream os = new DataOutputStream(client.getOutputStream());
DataInputStream is = new DataInputStream(client.getInputStream());
//os.writeUTF(tmp.append("client->").append("hello server").toString());
os.writeUTF(obuffer);
os.flush();
String ibuffer = is.readUTF();
System.out.println(ibuffer);
}
}
}
改成如下==================================
package Package;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class MyClient {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket client = new Socket("localhost", 8888);
//StringBuilder tmp = new StringBuilder();
String obuffer = "";
DataOutputStream os = new DataOutputStream(client.getOutputStream());
DataInputStream is = new DataInputStream(client.getInputStream());
while(true)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(null != (obuffer = br.readLine()))
{
// String obuffer = "client->to server";
//os.writeUTF(tmp.append("client->").append("hello server").toString());
os.writeUTF(obuffer);
os.flush();
String ibuffer = is.readUTF();
System.out.println(ibuffer);
}
}
}
}
读终端输入的时候,加个死循环判断有没有东西输入,否则终端很快退出;
另外在eclipse调试的时候,即没有生成.exe文件的时候,不会出现闪退的情况 。
以上为个人工作经验总结,如有误点,欢迎指正。