java 函数式编程 示例

Welcome to Java Socket programming example. Every server is a program that runs on a specific system and listens on a specific port. Sockets are bound to the port numbers and when we run any server it just listens on the socket and waits for client requests. For example, tomcat server running on port 8080 waits for client requests and once it gets any client request, it responds to them.

欢迎使用Java Socket编程示例。 每个服务器都是在特定系统上运行并在特定端口上侦听的程序。 套接字绑定到端口号,当我们运行任何服务器时,它仅侦听套接字并等待客户端请求。 例如,运行在端口8080上的tomcat服务器等待客户端请求,一旦获得任何客户端请求,它就会响应它们。

Java套接字编程 (Java Socket Programming)

A socket is one endpoint of a two-way communication link between two programs running on the network. The socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent.

套接字是网络上运行的两个程序之间双向通讯链接的一个端点。 该套接字绑定到一个端口号,以便TCP层可以识别应发送数据的应用程序。

In java socket programming example tutorial, we will learn how to write java socket server and java socket client program. We will also learn how server client program read and write data on the socket.

在Java套接字编程示例教程中,我们将学习如何编写Java套接字服务器Java套接字客户端程序。 我们还将学习服务器客户端程序如何在套接字上读取和写入数据。

java.net.Socket and java.net.ServerSocket are the java classes that implements Socket and Socket server.

java.net.Socketjava.net.ServerSocket是实现Socket和Socket服务器的Java类。

Java套接字服务器示例 (Java Socket Server Example)

package com.journaldev.socket;import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.ClassNotFoundException;
import java.net.ServerSocket;
import java.net.Socket;/*** This class implements java Socket server* @author pankaj**/
public class SocketServerExample {//static ServerSocket variableprivate static ServerSocket server;//socket server port on which it will listenprivate static int port = 9876;public static void main(String args[]) throws IOException, ClassNotFoundException{//create the socket server objectserver = new ServerSocket(port);//keep listens indefinitely until receives 'exit' call or program terminateswhile(true){System.out.println("Waiting for the client request");//creating socket and waiting for client connectionSocket socket = server.accept();//read from socket to ObjectInputStream objectObjectInputStream ois = new ObjectInputStream(socket.getInputStream());//convert ObjectInputStream object to StringString message = (String) ois.readObject();System.out.println("Message Received: " + message);//create ObjectOutputStream objectObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());//write object to Socketoos.writeObject("Hi Client "+message);//close resourcesois.close();oos.close();socket.close();//terminate the server if client sends exit requestif(message.equalsIgnoreCase("exit")) break;}System.out.println("Shutting down Socket server!!");//close the ServerSocket objectserver.close();}}

Java套接字客户端 (Java Socket Client)

package com.journaldev.socket;import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;/*** This class implements java socket client* @author pankaj**/
public class SocketClientExample {public static void main(String[] args) throws UnknownHostException, IOException, ClassNotFoundException, InterruptedException{//get the localhost IP address, if server is running on some other IP, you need to use thatInetAddress host = InetAddress.getLocalHost();Socket socket = null;ObjectOutputStream oos = null;ObjectInputStream ois = null;for(int i=0; i<5;i++){//establish socket connection to serversocket = new Socket(host.getHostName(), 9876);//write to socket using ObjectOutputStreamoos = new ObjectOutputStream(socket.getOutputStream());System.out.println("Sending request to Socket Server");if(i==4)oos.writeObject("exit");else oos.writeObject(""+i);//read the server response messageois = new ObjectInputStream(socket.getInputStream());String message = (String) ois.readObject();System.out.println("Message: " + message);//close resourcesois.close();oos.close();Thread.sleep(100);}}
}

To test java socket programming of server-client communication, first we need to run SocketServerExample class. When you will run socket server, it will just print “Waiting for client request” and then wait for the client request.

要测试服务器与客户端通信的Java套接字编程,首先我们需要运行SocketServerExample类。 当您运行套接字服务器时,它将仅显示“ Waiting for client request”,然后等待客户端请求。

Now when you will run SocketClientExample class, it will send a request to java socket server and print the response message to console.

现在,当您运行SocketClientExample类时,它将向Java套接字服务器发送请求,并将响应消息打印到控制台。

Here is the output of java socket server SocketServerExample program.

这是Java套接字服务器SocketServerExample程序的输出。

Waiting for the client request
Message Received: 0
Waiting for the client request
Message Received: 1
Waiting for the client request
Message Received: 2
Waiting for the client request
Message Received: 3
Waiting for the client request
Message Received: exit
Shutting down Socket server!!

Here is the output of Java socket client SocketClientExample program.

这是Java套接字客户端SocketClientExample程序的输出。

Sending request to Socket Server
Message: Hi Client 0
Sending request to Socket Server
Message: Hi Client 1
Sending request to Socket Server
Message: Hi Client 2
Sending request to Socket Server
Message: Hi Client 3
Sending request to Socket Server
Message: Hi Client exit

That’s all for a quick roundup of Socket programming in java. I hope you can get started with java socket server and java socket client programming.

这就是Java中Socket编程的快速总结。 我希望您可以开始使用Java套接字服务器和Java套接字客户端编程。

Reference: Oracle Doc

参考: Oracle文档

翻译自: https://www.journaldev.com/741/java-socket-programming-server-client

java 函数式编程 示例

java 函数式编程 示例_Java套接字编程–套接字服务器,客户端示例相关推荐

  1. java 怎么写异步方法_java如何学习异步编程?

    昨天头儿给的学习文档我还没看完,头儿说:"MongoDB光会简单的添删改查什么的不行,要深入了解,你们连$set和$inc使用场景都分不清." 确实,学习过一年多SQL,确实对学习 ...

  2. 网络多人游戏架构与编程 电子书_Java互联网架构-高性能网络编程必备技能IO与NIO阻塞分析...

    欢迎关注头条号:java小马哥 周一至周日早九点半!下午三点半!精品技术文章准时送上!!! 精品学习资料获取通道,参见文末 一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和I ...

  3. Java SE 6.0编程指南_Java SE 6.0 编程指南(附光盘)

    第一篇 起步篇 第1章 初识Java 第2章 基本数据类型--构建Java 大厦的基础 第3章 表达式--描述行为的元素 第4章 流程控制--Java世界的航行舵手 第5章 数组--以不变应万变的哲学 ...

  4. java 同步转并行_Java线程与并行编程(二)

    你好,我是goldsunC 让我们一起进步吧! 线程的控制与同步 线程的状态与生命周期 '每个Java程序都有一个默认的主线程,想要实现多线程,必须在主线程中创建新的线程对象.新建的线程在它的一个完整 ...

  5. java集合笔试编程题_Java 基础算法及编程笔试题集合

    1. 斯诺克台球共有15个一分球,2,3,4,5,6,7分球各一个,规则是先打一个最低分球,然后可以打一个其他分值的球,如此反复,如果台面还有更低分值的球,打入的高分球计分,同时拿出来放回原位置,要求 ...

  6. java log4j 热部署_JAVA类加载器分析--热部署的缺陷(有代码示例,及分析)

    首先纠正一个误区: 热部署不是我们在Eclipse里面修改了代码不用重启就可以持续调试. 详情可以参考上一篇博文: 热部署和"Hot Code Replace"的区别    htt ...

  7. java 创建web项目_java – Eclipse:以编程方式创建动态Web项目

    我尝试通过首先通过IProject创建 java项目然后使用IFacetedProject将其转换为动态Web项目来创建动态Web项目,但是只创建了静态项目-这是我已经完成的代码-请帮助我这--谢谢. ...

  8. java 创建自定义菜单_Java实现微信公众号自定义菜单的创建方法示例

    本文实例讲述了Java实现微信公众号自定义菜单的创建方法.分享给大家供大家参考,具体如下: 开发公众号的时候可能需要给一些自定义菜单添加事件,比如点击某菜单然后服务端给用户推送信息. 我们也可以使用微 ...

  9. java 获取排列组合_Java获得一个数组的指定长度排列组合算法示例

    本文实例讲述了Java获得一个数组的指定长度排列组合算法.分享给大家供大家参考,具体如下: package demo; import java.util.Stack; /** * JAVA获得一个数组 ...

  10. java记录访问次数_Java 利用监听器来实现记录用户访问网站次数(示例代码)

    假如有这么一个需求,要记录所有用户访问某一页面的次数. 最先想到的可能是在该Controller定义一个静态成员,然后在相应Action里自增.但这样有一个问题,就是Tomcat或者其他服务器重启的话 ...

最新文章

  1. 一个计算crc校验的小工具的编写。
  2. BCE或能成为BCH的一个侧链
  3. ExtJs TreePanel 不能加载ashx数据的解决办法
  4. Linux基础之shell变量
  5. 初步了解Linux创建文件系统命令
  6. was更换java版本,WAS如何更换JDK
  7. “Hello World!”团队第九次会议
  8. 中国恒大:正接触独立第三方投资者
  9. Windows环境下Docker常用命令
  10. [zz]cocos2d-x如何优化内存的应用
  11. 转自瑞星:“永恒之蓝”WannaCry勒索病毒分析报告
  12. 戴尔修复计算机软件,DELL电脑系统恢复工具(Dell OS Recovery Tool)2019 v2.3.6066官方版...
  13. 苹果cms怎么添加百度统计代码
  14. 肠道菌群失调与炎症性肠病的关联
  15. oracle如何导入用户数据文件,oracle的dmp数据文件的导出和导入以及创建用户
  16. 如何设置对话框的最大(小)高度与宽度
  17. Speedoffice(word)如何调整页眉位置
  18. win7防火墙怎么关_电脑防火墙怎么关?这两招你得会
  19. css设置宽度与高度比例,实现高度为宽度的百分之多少
  20. 毕业三年,一事无成,被迫回老家,一个决定改变一生。

热门文章

  1. 预写式日志 - postgresql之WAL(Write Ahead Log)
  2. [转载] Python杂谈 | (6) numpy中array()和asarray()的区别
  3. [转载] PYTHON 网络编程
  4. [转载] Java static关键字详解
  5. STM32 ARM调试问题总结
  6. python-字典和json
  7. 为什么模板函数的声明和实现都放在.h文件中
  8. OSGi.NET 学习笔记 [模块化和插件化][概念]
  9. 【转载】SQL 标量函数-----字符串函数 之二 去空格函数 LTRIM() 、RTRIM()
  10. 深度学习之----各种学习策略