Socket和ServerSocket,网络编程可以分为创建Socket、打开连接Socket的输入流和输出流,对Socket进行编程,关闭Socket。

创建Socket

一个功能齐全的Socket的工作过程包含以下四个步骤:

1、创建Socket。

2、打开连接到Socket的输入/输出流。

3、按照一定的协议对Socket进行读/写操作。

4、关闭Socket

在java.net包中,定义了Socket和ServerSocket两个类,类Socket表示客户端或者服务器Socket连接的两端。

类Socket中构造方法如下:

Socket(inetAddress address,int port)

Socket(inetAddress address,int port,boolean stream)

Socket(String host,int port)

Socket(String host,int port,boolean stream)

Socket(SocketImp impl)

Socket(String host,int port,inetAddress localAddr,int localport)

Socket(inetAddress address,int port,inetAddress localAddr,int localport)

参数address表示IP地址,host表示主机名,port表示端口号,stream用于指明Socket是流还是数据报,localPort表示本地主机的端口号,localAddr是本地及其地址,impl是Socket的父类。

ServerSocket中的构造方法如下:

ServerSocket(int port)

ServerSocket(int port,int backlog)

ServerSocket(int port,int backlog,InetAddress bindAddr)

参数bindAddr表示本机地址。

Socket和ServerSocket类库都位于java.net包中,ServerSocket用于服务器端,Socket是建立网络连接时使用的。连接成功后会在两端产生一个Socket实例,通过这Socket实例,可以完成所需的会话。

Socket常用的方法有Accept方法,主要用于产生“阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。getInputStream方法,用于获取网络连接输入,返回一个InputStream对象的实例。getOutputStream方法,获取OutputStream实例。

参看客户端与服务器通信:

服务端:

<span style="font-size:18px;">public class Server {public static void main(String[] args) {ServerSocket ss;try {ss = new ServerSocket(30000);while(true){Socket socket=ss.accept();OutputStream outputStream=socket.getOutputStream();InputStream inputStream=socket.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));String request=br.readLine();System.out.println(request);socket.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}</span>

客户端:

<span style="font-size:18px;">public class Client {public static void main(String[] args) {try {Socket socket=new Socket("192.168.120.112",30000);OutputStream outputStream=socket.getOutputStream();InputStream inputStream=socket.getInputStream();  PrintStream printStream=new PrintStream(outputStream);printStream.print("Client--->");socket.close();} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}</span>

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42651911    情绪控_

Java网络编程笔记4相关推荐

  1. Java网络编程笔记5

    在Java网络编程笔记4中我们看到了客户端与服务器通信的过程,只是在前面的程序只是单个客户端与服务器通信 的例子. 接下来我们看如何实现多个客户端与服务器通信,对于服务器来说,它要为每个客户端请求的S ...

  2. Java网络编程笔记

    Java网络编程 14-1 网络编程概述 14-2 网络通信要素概述 14-3 通信要素一:IP和端口号 InetAddress类测试 14-4 通信要素二:网络协议 14-5 TCP网络编程 TCP ...

  3. Java网络编程笔记1

    网络编程的基础知识 什么叫计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备通信线路互连成一个规模大.功能强的网络系统. 计算机网络主要能做些以下功能: 1)资源共享 2)信息传输与集中处理 ...

  4. Java网络编程笔记3

    如何使用POST请求和GET请求向Web站点发送请求,参考以下代码: import java.io.BufferedReader; import java.io.InputStream; import ...

  5. Java网络编程笔记2

    如果要实现多线程下载,可以定义以下步骤: 1)创建URL对象(URL代表统一资源定位器) URL url=new URL(path);//path资源路径 2)获取URL对象指向资源的大小,使用URL ...

  6. Java网络编程笔记6

    在前几遍文章中,我们已经知道了客户端与服务器通信,包括多个客户端与服务器的通信,接下来我们演示下客户端与服务器的完整通信过程. 先看效果图 客户端1 客户端2 服务器端 服务器线程类: <spa ...

  7. java 网络编程学习笔记

    java 网络编程学习笔记 C/S模式:客户端和服务器 客户端创建流程 1 1.建立Socket端点 2 3 Socket s = new Socket(绑定地址, 绑定端口); 2.确认源数据方式和 ...

  8. 菜鸟学习笔记:Java提升篇9(网络1——网络基础、Java网络编程)

    菜鸟学习笔记:Java提升篇9(网络1--网络基础.Java网络编程) 网络基础 什么是计算机网络 OS七层模型 Java网络编程 InetAddress InetSocketAddress URL类 ...

  9. JAVA网络编程个人笔记 第4章 inet地址

    JAVA网络编程个人笔记 第4章 inet地址 Internet寻址 创建InetAddress对象 常用方法 getLocalHost() 代码实现 getByName() 代码实现 getAllB ...

最新文章

  1. 使用roslyn代替MSBuild完成解决方案编译
  2. 14.Python抠图脚本
  3. gRPC学习记录(五)--拦截器分析
  4. goland go test 多个文件_这个代码怎么会编译不通过?Goland 新手常见问题解决:GOPATH 和 Go Modules 编译不成功...
  5. P2597-[ZJOI2012]灾难【DAG支配树】
  6. 漫步微积分十五——凹凸性和拐点
  7. java json格式化工具类
  8. 荣耀推出MOSCHINO联名款荣耀20 PRO手机 售价3799元
  9. Django的基础操作总结
  10. 用“无线诊断”工具解决 Mac 出现的 WiFi 连接问题
  11. 连接spark集群Windows环境搭建
  12. htc思想[second]
  13. 微信打开网页会出现一个“将要访问”的页面是怎么回事?
  14. 一建报名条件是什么?
  15. C/C++内存检测工具valgrind
  16. Compareprice多平台跟得物比价
  17. KVM介绍 虚拟化简史
  18. 【VRP问题】基于模拟退火遗传实现带时间窗的车辆路径规划问题
  19. 资深建模师常用的几款建模软件,你了解多少?
  20. Nginx - 服务器架构

热门文章

  1. debian nvidia 安装_【折腾】openSUSE安装与配置——从入门到放弃
  2. matlab中imfilter是什么意思,matlab中imfilter的用法
  3. MDT2008部署之三LTI部署之二
  4. 自定义控件详解(六):Paint 画笔MaskFilter过滤
  5. Android OkHttp(1)
  6. mysql事务的四大特性与简单运用
  7. Unity3D中使用KiiCloud总结一
  8. ActionResult 返回类型
  9. GARFIELD@07-12-2005 DILBERT
  10. JS - Promise使用随笔