java socket网络编程(多线程技术)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java socket网络编程(多线程技术),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2600字,纯文字阅读大概需要4分钟。
内容图文
![java socket网络编程(多线程技术)](/upload/InfoBanner/zyjiaocheng/1104/e7176468951c408588764e15485be81a.jpg)
Client.java
import java.io.*; import java.net.*; import java.util.*; publicclass Client { publicstaticvoid main(String args[]) { Scanner scanner = new Scanner(System.in); Socket mysocket=null; DataInputStream in=null; DataOutputStream out=null; Thread readData ; Read read=null; try{ mysocket=new Socket(); read = new Read(); readData = new Thread(read); System.out.print("输入服务器的IP:"); String IP = scanner.nextLine(); System.out.print("输入端口号:"); int port = scanner.nextInt(); if(mysocket.isConnected()){} else{ InetAddress address=InetAddress.getByName(IP); InetSocketAddress socketAddress=new InetSocketAddress(address,port); mysocket.connect(socketAddress); in =new DataInputStream(mysocket.getInputStream()); out = new DataOutputStream(mysocket.getOutputStream()); read.setDataInputStream(in); readData.start(); } } catch(Exception e) { System.out.println("服务器已断开"+e); } System.out.print("输入园的半径(放弃请输入N):"); while(scanner.hasNext()) { double radius=0; try { radius = scanner.nextDouble(); } catch(InputMismatchException exp){ System.exit(0); } try { out.writeDouble(radius); } catch(Exception e) {} } } }
Read.java
import java.io.*; publicclass Read implements Runnable { DataInputStream in; publicvoid setDataInputStream(DataInputStream in) { this.in = in; } publicvoid run() { double result=0; while(true) { try{ result=in.readDouble(); System.out.println("圆的面积:"+result); System.out.print("输入园的半径(放弃请输入N):"); } catch(IOException e) { System.out.println("与服务器已断开"+e); break; } } } }
Server.java
import java.io.*; import java.net.*; import java.util.*; publicclass Server { publicstaticvoid main(String args[]) { ServerSocket server=null; ServerThread thread; Socket you=null; while(true) { try{ server=new ServerSocket(2010); } catch(IOException e1) { System.out.println("正在监听"); //ServerSocket对象不能重复创建 } try{ System.out.println(" 等待客户呼叫"); you=server.accept(); System.out.println("客户的地址:"+you.getInetAddress()); } catch (IOException e) { System.out.println("正在等待客户"); } if(you!=null) { new ServerThread(you).start(); //为每个客户启动一个专门的线程 } } } } class ServerThread extends Thread { Socket socket; DataOutputStream out=null; DataInputStream in=null; String s=null; ServerThread(Socket t) { socket=t; try { out=new DataOutputStream(socket.getOutputStream()); in=new DataInputStream(socket.getInputStream()); } catch (IOException e){} } publicvoid run() { while(true) { try{ double r=in.readDouble();//堵塞状态,除非读取到信息double area=Math.PI*r*r; out.writeDouble(area); } catch (IOException e) { System.out.println("客户离开"); return; } } } }
原文:http://www.cnblogs.com/yihujiu/p/5991283.html
内容总结
以上是互联网集市为您收集整理的java socket网络编程(多线程技术)全部内容,希望文章能够帮你解决java socket网络编程(多线程技术)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。