黑马程序员---------关于socket编程

---------------------- android培训java培训、期待与您交流! ----------------

------关于网络编程,以前还没有涉及过,感觉很难,看完视频,自己就做了一个客户端和服务器进行简单通话的程序!!!用socket编程真的很麻烦,每一个细节都要照顾到,要是开发是这样搞的,可是要死人的
代码敲完后,感觉还不很踏实,有时间要再看一遍视频!!!

下面是服务器端的代码

 public class SSocket extends Thread {
 Socket sk=null;
 public SSocket(Socket socket){
  this.sk=socket;
 }
 public void run(){
  //在这里实现数据的接受和发送
  BufferedReader input;
  PrintWriter output;
  try {
   input=new BufferedReader(new InputStreamReader(sk.getInputStream()));
   output=new PrintWriter(sk.getOutputStream());
   String msg=input.readLine();
   System.out.println("服务器接受客户端数据为:"+msg);
   Pattern pattern=Pattern.compile("[0-9]*");
   Matcher isNum=pattern.matcher(msg.trim());
   if(isNum.matches()){
    output.println("已经接受数据完成.您输入的内容是一个数字。数字是:"+msg);
    output.flush();
   }else{
    output.println("已经接受数据完成.您输入的内容是不一个数字。输入内容是:"+msg);
    output.flush();
   }
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally{
   try {
    sk.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }
}
客户端代码为

public class SocketTest {
 public static void main(String[] args) {
  Socket sk=null;
  try {
   Scanner input = new Scanner(System.in);
   System.out.println("请输入内容,输入f表示输入结束:");
   String name=input.next();
   while(!name.equals("f")){
    sk=new Socket("prd03",8088);
    OutputStream out=sk.getOutputStream();
    PrintWriter os=new PrintWriter(out);
    BufferedReader  is=new BufferedReader(new InputStreamReader(sk.getInputStream()));
    //向服务器传入数据
    os.println(name);
    os.flush();
    //服务器返回数据
    String res=is.readLine();
    System.out.println(res);
    name=input.next();
    //释放资源
    os.close();
    is.close();
   }
   
  } catch (UnknownHostException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   if(sk!=null)
    try {
     sk.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
  }
 }
}

---------------------- android培训 java培训 、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值