当前位置: 首页 > news >正文

Java通信编程之Socket入门

Java通信编程之Socket入门
  1. /**
  2.  * @(#)ClientTest.java
  3.  *
  4.  * 客户端
  5.  * @author 
  6.  * @version 1.00 2008/8/2
  7.  */
  8. import java.net.Socket;
  9. import java.io.IOException;
  10. import java.io.InputStreamReader;
  11. import java.io.BufferedReader;
  12. import java.io.PrintWriter;
  13. public class ClientTest {
  14.     private Socket socket;
  15.     BufferedReader in;
  16.     PrintWriter out;
  17.     
  18.     public ClientTest() {
  19.         try{
  20.             System.out.println("Try to connect to 127.0.0.1:10000");
  21.             //向服务器发出连接请求
  22.             socket=new Socket("127.0.0.1",10000);
  23.             System.out.println("The Server Connected!");   
  24.             
  25.             System.out.println("Please enter some characters:");
  26.             //读取用户输入信息
  27.             BufferedReader line=new BufferedReader(new InputStreamReader(System.in));
  28.             
  29.             //输出从服务器端获得的信息
  30.             out=new PrintWriter(socket.getOutputStream(),true);
  31.             out.println(line.readLine());
  32.             
  33.             //读取服务器端信息
  34.             in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
  35.             System.out.println(in.readLine());
  36.             
  37.             out.close();
  38.             in.close();
  39.             socket.close();    
  40.         }catch(IOException ex){
  41.             System.out.println(ex.getMessage());
  42.         }
  43.     }
  44.     
  45.     public static void main(String[] args){
  46.         new ClientTest();
  47.     }
  48.     
  49. }
  1. /**
  2.  * @(#)ServerSocketTest.java
  3.  *
  4.  * 服务器端
  5.  * @author 
  6.  * @version 1.00 2008/8/2
  7.  */
  8. import java.net.ServerSocket;
  9. import java.net.Socket;
  10. import java.io.IOException;
  11. import java.io.BufferedReader;
  12. import java.io.InputStreamReader;
  13. import java.io.PrintWriter;
  14. public class ServerSocketTest {
  15.     private ServerSocket ss;
  16.     private Socket socket;
  17.     private BufferedReader in;
  18.     private PrintWriter out;
  19.     public ServerSocketTest() {
  20.         try{
  21.             ss=new ServerSocket(10000);//建立服务器,监听...
  22.             System.out.println("Server is listening at 10000...");
  23.             while(true){
  24.                 socket=ss.accept();
  25.                 //获取客户端IP地址
  26.                 String remoteIP=socket.getInetAddress().getHostAddress();
  27.                 //获取客户端连接端口
  28.                 String remotePort=":"+socket.getLocalPort();
  29.                 System.out.println("A clinet come in!IP:"+remoteIP+remotePort);
  30.                 
  31.                 //读取客户端输入
  32.                 in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
  33.                 String line=in.readLine();
  34.                 System.out.println("Client send is:"+line);
  35.                 
  36.                 //将服务器端信息发往客户端
  37.                 out=new PrintWriter(socket.getOutputStream(),true);
  38.                 out.println("Your Message Received!");
  39.                 
  40.                 out.close();
  41.                 in.close();
  42.                 socket.close();
  43.             }
  44.         }catch(IOException ex){
  45.             System.out.println(ex.getCause());
  46.         }
  47.     }
  48.     
  49.     public static void main (String[] args) {
  50.         new ServerSocketTest();
  51.     }  
  52. }

 

 

相关文章:

  • 回车提交表单
  • 数据库的查询优化技术
  • 微信jssdk分享功能,jssdk成功调用,分享内容自定义失败
  • 用VS2005制造WEB安装程序
  • Java对象实例化顺序
  • 非阻塞模式下,虽然connect出错,但是getsockopt取得的错误却是0的问题
  • Java面试之判断对错
  • PL/SQL
  • 数据库系统优化--业务逻辑设计优化
  • 【WPF】DispatcherFrame 是个啥玩意儿
  • 技术路线的选择重要但不具有决定性
  • java中操作xml几种方式的比较和代码示例(DOM,SAX,JDOM,DOM4J)
  • async/await方法解析
  • 发送验证码倒计时效果
  • Perhaps JAVA_HOME does not point to the JDK
  • JavaScript-如何实现克隆(clone)函数
  • [译] 怎样写一个基础的编译器
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 30天自制操作系统-2
  • conda常用的命令
  • es6要点
  • es的写入过程
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JS笔记四:作用域、变量(函数)提升
  • SegmentFault 2015 Top Rank
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • vue:响应原理
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 微信公众号开发小记——5.python微信红包
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #FPGA(基础知识)
  • #LLM入门|Prompt#3.3_存储_Memory
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $GOPATH/go.mod exists but should not goland
  • (2)STL算法之元素计数
  • (solr系列:一)使用tomcat部署solr服务
  • (二)windows配置JDK环境
  • (算法二)滑动窗口
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core引入性能分析引导优化
  • .NET 事件模型教程(二)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET运行机制
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • .考试倒计时43天!来提分啦!
  • ::
  • @Import注解详解