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

Java Socket网络编程

Java Socket网络编程

服务器端:

 1 import java.net.*;
 2 import java.io.*;
 3 public class SocketServer extends Thread {
 4     private ServerSocket serverSocket;
 5     public SocketServer(int port) throws IOException
 6     {
 7         serverSocket=new ServerSocket(port);
 8         //等待客户连接的时间不超过6秒
 9         serverSocket.setSoTimeout(100000);
10     }
11     public void run()
12     {
13         while(true)
14         {
15             try
16             {
17                 System.out.println("等待远程连接,端口号为:"+serverSocket.getLocalPort());
18                 Socket server =serverSocket.accept();
19                 System.out.println("远程主机地址"+server.getRemoteSocketAddress());
20                 //从客户端读数据
21                 DataInputStream in=new DataInputStream(server.getInputStream());
22                 System.out.println(in.readUTF());
23                 //往客户端发送数据
24                 DataOutputStream out=new DataOutputStream(server.getOutputStream());
25                 out.writeUTF("谢谢连接我:"+server.getLocalSocketAddress()+"\nGoodbye!");
26                 server.close();
27             }
28             catch(SocketException s)
29             {
30                 System.out.println("Socket timed out");
31                 break;
32             }
33             catch(IOException e)
34             {
35                 e.printStackTrace();
36                 break;
37             }
38         }
39     }
40     public static void main(String[] args)
41     {
42         int port=6066;
43         try
44         {
45             Thread t=new SocketServer(port);
46             t.run();
47         }
48         catch(IOException e)
49         {
50             e.printStackTrace();
51         }
52     }
53 }

客户端:

 1 import java.net.*;
 2 import java.io.*;
 3 public class SocketClient {
 4     public static void main(String[] args)
 5     {
 6         //服务器地址
 7         String serverName="localhost";
 8         //服务器端口号
 9         int port=6066;
10         try
11         {
12             System.out.println("连接到主机:"+serverName+",端口号:"+port);
13             Socket client=new Socket(serverName,port);
14             System.out.println("远程主机地址:"+client.getRemoteSocketAddress());
15             //向服务器传送消息
16             OutputStream outToServer=client.getOutputStream();
17             DataOutputStream out=new DataOutputStream(outToServer);
18             out.writeUTF("Hello from"+client.getLocalSocketAddress());
19             
20             //获取服务器返回的信息
21             InputStream inFromServer=client.getInputStream(); 
22             DataInputStream in=new DataInputStream(inFromServer);
23             System.out.println("服务器响应:"+in.readUTF());
24             client.close();
25         }
26         catch(IOException e)
27         {
28             e.printStackTrace();
29         }
30     }
31 
32 }

 

posted on 2017-09-01 20:02 明耀 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/mingyao123/p/7464884.html

相关文章:

  • 浅谈返回值类型: json与html
  • SVN的安装与简单使用
  • SQL Server直接查询: 其它的连接/Excel
  • javaweb part6---jstl以及el表达式
  • webuploader配置
  • SQL Server中的convert来转换时间
  • 日期工具
  • 静态路由作用和添加删除命令
  • jar/war/ear文件的区别
  • 自动装箱和自动拆箱
  • 从Hadoop框架与MapReduce模式中谈海量数据处理(淘宝技术架构)
  • jQuery获取Select选择的Text和Value:
  • unity-------------UI的界面调节
  • SQL : 根据列名求表名等小技巧
  • F5-WAF-12.0
  • 分享一款快速APP功能测试工具
  • [Vue CLI 3] 配置解析之 css.extract
  • android图片蒙层
  • JSONP原理
  • markdown编辑器简评
  • mysql innodb 索引使用指南
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 为视图添加丝滑的水波纹
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #Linux(Source Insight安装及工程建立)
  • $NOIp2018$劝退记
  • (1)bark-ml
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C语言)二分查找 超详细
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十)T检验-第一部分
  • ... 是什么 ?... 有什么用处?
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET开源项目介绍及资源推荐:数据持久层
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET中GET与SET的用法
  • [100天算法】-二叉树剪枝(day 48)
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [AAuto]给百宝箱增加娱乐功能
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [BUG] Authentication Error
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍
  • [Electron]ipcMain.on和ipcMain.handle的区别
  • [HackMyVM]靶场 Wild
  • [Java基础] Java中List.remove报错UnsupportedOperationException
  • [LVGL]:MACOS下使用LVGL模拟器
  • [Mvc]在ASP.NET MVC中使用Repeater
  • [noip2015 d1t2] 信息传递