客户服务器交互简单的例子(1)有待改进

服务器端:

package Server;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest implements Runnable {
 private int port;//端口号
 private ServerSocket server = null;
 
 public ServerTest(){
  this(8000);
 }
 public ServerTest(int port){
  this.port = port;
 }
 
 public void run() {
  try {
   server = new ServerSocket(port);

   while(true){
    Socket client = server.accept();
    System.out.println(client);
    ObjectInputStream ois = new ObjectInputStream(
      client.getInputStream());
    String str;
    try {
     str = (String)ois.readObject();
     System.out.println(str);
     ois.close();
    } catch (ClassNotFoundException e) {
     e.printStackTrace();
    }finally{
     if(client != null) client.close();
    }
    
   }
   
  } catch (IOException e1) { 
   e1.printStackTrace();
  }finally{
   if(server != null)
    try {
     server.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
  }
 }
 
 public static void main(String []args){
  ServerTest s = new ServerTest();
  new Thread(s).start();
 }
}
 

客户端:

package client;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientTest implements Runnable{
private String host;
private int port;
private Socket client;

 ClientTest(){
  this("172.17.4.20",8000);
 }
 ClientTest(String IP,int port){
  this.host = IP;
  this.port = port;
 }
 public void run() {
  
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
  while(true){
   try {
    client = new Socket(host,port);
               
    String into = br.readLine();
    ObjectOutputStream oos = new ObjectOutputStream(
       client.getOutputStream());
    oos.writeObject(into);
    oos.flush();
    oos.close();
    
   } catch (UnknownHostException e1) {
    e1.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }finally{
    try {
     if(client != null) client.close();
    } catch (IOException e) { 
     e.printStackTrace();
    }
   }
  }
 }
 public static void main(String []args){
  ClientTest c = new ClientTest();
  new Thread(c).start();
 }
}
 

从中我犯了一个重要性错误,客户端每次和服务器交互时创建连接,不是一次连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值