TCPSocket系列二

一.单向服务器端写出及单向客户端读入

 服务器端:

 1 import java.io.DataOutputStream;
 2 import java.io.IOException;
 3 import java.io.OutputStream;
 4 import java.net.ServerSocket;
 5 import java.net.Socket;
 6 /**
 7  * 一.单边服务器客户端写出和读取
 8  * public abstract class OutputStream extends Object
 9  * implements Closeable, Flushable
10  * 这个抽象类是表示字节输出流的所有类的超类。 输出流接收输出字节并将其发送到某个接收器。
11  *
12  * 二.public int getPort()返回此套接字连接到的远程端口号。
13  *
14  * 三.public InetAddress getInetAddress()返回套接字所连接的地址。
15  */
16 public class TestServer {
17     public static void main(String[] args) {
18         try {
19             //服务器连接端口
20             ServerSocket ss=new ServerSocket(8888);
21             while(true){
22                 //连接插口
23                 Socket s=ss.accept();
24                 //通过插口写出数据
25                 OutputStream out=s.getOutputStream();
26                 //包装一层数据流管道
27                 DataOutputStream dat=new DataOutputStream(out);
28                 //以UTF的形式写出
29                 dat.writeUTF("俱怀逸兴壮思飞,"+s.getInetAddress()+
30                         "欲上青天揽明月"+s.getPort()+"人生得意须尽欢");
31                 //关闭数据流,关闭插口
32                 dat.close();   s.close();
33             }
34         } catch (IOException e) {
35             e.printStackTrace();
36             System.out.println("程序运行异常!");
37         }
38
39     }
40 }

客户端:

 1 import java.io.DataInputStream;
 2 import java.io.IOException;
 3 import java.io.InputStream;
 4 import java.net.ConnectException;
 5 import java.net.Socket;
 6 import java.net.UnknownHostException;
 7
 8 /**
 9  * 客户端单向读取
10  */
11 public class TestClient {
12     public static void main(String[] args) {
13         try {
14             //确定客户端端口及服务器连接端口
15             Socket s=new Socket("127.0.0.1",8888);
16             //读取服务器端发送的数据
17             InputStream in=s.getInputStream();
18             DataInputStream dat=new DataInputStream(in);
19             //以UTF的形式读取
20             System.out.println(dat.readUTF());
21             //关闭流和插口
22             dat.close();  s.close();
23         } catch (ConnectException con) {
24                con.printStackTrace();
25                System.out.println("服务器连接失败!");
26         } catch (IOException e) {
27             e.printStackTrace();
28         }
29     }
30 }



后续待补充...

原文地址:https://www.cnblogs.com/zjm1999/p/10165728.html

时间: 2024-10-20 14:44:07

TCPSocket系列二的相关文章

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

highcharts 结合phantomjs纯后台生成图片系列二之php2

上篇文章中介绍了phantomjs的使用场景,方法. 本篇文章详细介绍使用php,highcharts 结合phantomjs纯后台生成图片.包含一步步详细的php代码 一.highcharts 结合phantomjs纯后台生成图片系列的准备: 下载phantomjs解析插件,从highcharts官方下载所需插件. 新建一个工程文件夹phantomjs,所必备的js文件有: highcharts 结合phantomjs纯后台生成图片系列二之php 其中jquery.js为 v1.7.1; hi

iOS开发UINavigation系列二——UINavigationItem

iOS开发UINavigation系列二--UINavigationItem 一.引言 UINavigationItem是导航栏上用于管理导航项的类,在上一篇博客中,我们知道导航栏是通过push与pop的堆栈操作来对item进行管理的,同样,每一个Item自身也有许多属性可供我们进行自定制.这篇博客,主要讨论UINavigationItem的使用方法. UINavigationBar:http://my.oschina.net/u/2340880/blog/527706. 二.来说说UINavi

windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) 简单说几句 在mongodb中3元素:db(数据库).collection(集合).document(文档) 其中collection类似于数据库中的表,document类似于行,这样一来我们就将内容对比起来记忆学习了. 数据格式 MongoDB documents是BSON格式(一种类json的一种二进制形式的存

原始套接字基础(原始套接字系列二)

在进入Raw Socket多种强大的应用之前,我们先讲解怎样建立一个Raw Socket及怎样用建立的Raw Socket发送和接收IP包. 建立Raw Socket 在Windows平台上,为了使用Raw Socket,需先初始化WINSOCK: // 启动 WinsockWSAData wsaData;if (WSAStartup(MAKEWORD(2, 1), &wsaData) != 0){ cerr << "Failed to find Winsock 2.1 or

C# 玩转计算机系列(二)-操作IIS服务

之前由于工作需要自己做一个一键部署的小工具,实现三个模块的功能:TFS操作创建映射并获取最新源代码:SQL Server数据库注册表配置数据库连接:IIS站点部署,生成可访问的IIS站点.由于是基于自己的工作环境下的开发,所以在TFS和SQL Server配置工具化实现,有一些点是默认按照公司的环境配置参数默认的,虽然不是广泛适用每一种情况的环境部署,但是在学习这三个模块的开发过程中,还是有很多东西是可以值得分享的. 今天先分享一下,如何通过工具化实现IIS站点部署和配置,为了可复用性,IIS操

Exchange Server 2013系列二:服务器角色

杜飞 在上一篇文章中,我们提到现在硬件性能的增加以及成本的下降,硬件已经不再成为软件应用的约束因素,特别是CPU,其 计算能力的成本显著降低.Exchange 2013 的主要设计目标是简化缩放.提高硬件利用率和实现故障隔离.Exchange 2013一开始将服务器角色的数目减少到了两个:客户端访问服务器角色和邮箱服务器角色,当然,升级到SP1之后也包含边缘服务器角色或者是边界网络中安装 Exchange 2007 或 Exchange 2010 边缘传输服务器角色.如下图所示: 客户端访问服务

highcharts 结合phantomjs纯后台生成图片系列二之php

上篇文章中介绍了phantomjs的使用场景,方法.本篇文章详细介绍使用php,highcharts 结合phantomjs纯后台生成图片. 一.准备: 下载phantomjs解析插件,从 highcharts官方 下载所需插件. 新建一个工程文件夹名位:phantomjs,所必备的js文件有: 其中jquery.js为v1.7.1; highcharts-convert.js的下载地址可去 github上下载 . highcharts官方文档有关于highcharts-convert.js的使

Apache Kafka系列(二) 命令行工具(CLI)

Apache Kafka系列(一) 起步 Apache Kafka系列(二) 命令行工具(CLI) Apache Kafka命令行工具(Command Line Interface,CLI),下文简称CLI. 1. 启动Kafka 启动Kafka需要两步: 1.1. 启动ZooKeeper [[email protected] kafka_2.12-0.11.0.0]# bin/zookeeper-server-start.sh config/zookeeper.properties 1.2.