@Test
public void startClient() throws UnknownHostException, IOException {
Socket socket = new Socket("localhost", 10088);
System.out.println("客户端启动成功!");
InputStream is = socket.getInputStream();
// InputStreamReader isr=new InputStreamReader(is);
OutputStream os = socket.getOutputStream(); try {
os.write("我是客户端!".getBytes());
int inf = 0;
StringBuilder sb = new StringBuilder();
while((inf=is.read())!=-1) { sb.append((char)inf);
}
System.out.println(sb);
}
finally {
is.close();
os.close();
socket.close();
} }
public void startClient() throws UnknownHostException, IOException {
Socket socket = new Socket("localhost", 10088);
System.out.println("客户端启动成功!");
InputStream is = socket.getInputStream();
// InputStreamReader isr=new InputStreamReader(is);
OutputStream os = socket.getOutputStream(); try {
os.write("我是客户端!".getBytes());
int inf = 0;
StringBuilder sb = new StringBuilder();
while((inf=is.read())!=-1) { sb.append((char)inf);
}
System.out.println(sb);
}
finally {
is.close();
os.close();
socket.close();
} }
解决方案 »
- 冰天雪地跪求:为何在一个JPanel里面画图然后将其装入JScrollPane里面滚动条不可用?
- 如图JTable 添加了JScrollpane以后,如何消除列头上的ABC.....
- java编译器与C编译器的区别
- 如何限制杂JTextField中输入只有两个数字且输入的数字是01-12
- 求助用java.beans的api编写两个个map和bean互相转换的方法;object maptobean(map beanClass) map beantomap(bean)
- 数据库更新的问题,高手指点
- 求一个DJ java Dcompiler3.9的SN?
- java能实现动态加载类方法这样的功能吗?
- 怎样初始化 i、j、k ?
- 如何修改这个JTable??
- 请问以下程序为啥执行不了,报terminated
- javase 数据库安全问题
public void startServer() throws IOException {
int port = 10088;
String path = "d:/Files/file.txt"; ServerSocket server = new ServerSocket(port);// 监听端口
System.out.print("服务器启动成功!");
while (true) {
final Socket socket = server.accept();// 获取socket;
System.out.println("有客户端连接我!");
final OutputStream os = socket.getOutputStream();
final InputStream is = socket.getInputStream();
Thread thread = new Thread(new Runnable() { @Override
public void run() {
try {
// 写到客户端信息
os.write("My".getBytes());
// 写到客户端
int inf = 0;
StringBuilder sb = new StringBuilder();
while ((inf = is.read()) != -1) {
sb.append((char) inf);
}
System.out.println(sb);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} });
thread.start(); }
}
以上是服务器端程序,在客户端程序中,按理说System.out.println(sb);的输出要是My;但是,这一句压根没执行到,把System.out.println(sb);放到while循环里面,倒是正常输出 M (第一次循环输出) My(第二次循环输出);