Java Socket编程需要大家详细的学习,有关的技术一直在不断的更新。那么要如何才能掌握好有关的技术更新呢?接下来我们就来学些有关Java Socket编程的相关知识。

事实上网络编程简单的理解就是两台计算机相互通讯数据而已。对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了,Java SDK提供一些相对简单的Api来完成这些工作,Java Socket编程就是其中之一。对于Java而言,这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了。

网络编程的基本模型就是客户机到服务器模型。简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置.并去建立两者之间的联系,然后完成数据的通讯就可以了。这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端。基于这个简单的模型,就可以进入网络编程啦。

Java对这个模型的支持有很多种Api,而这里我只想介绍有关Java Socket编程的编程接口。对于Java而言已经简化了Socket的编程接口。首先我们来讨论有关提供固定位置的服务方是如何建立的,Java提供了ServerSocket来对其进行支持,事实上当你创建该类的一个实力对象并提供一个端口资源你就建立了一个固定位置可以让其他计算机来访问你。ServerSocket server=new ServerSocket(6789);这里稍微要注意的是端口的分配必须是唯一的,因为端口是为了唯一标识每台计算机唯一服务的,另外端口号是从0~65535之间的,前1024个端口已经被Tcp/Ip 作为保留端口,因此你所分配的端口只能是1024个之后的。

我们有了固定位置,现在所需要的就是一根连接线了,该连接线由客户方首先提出要求,因此Java同样提供了一个Java Socket编程对象来对其进行支持。只要客户方创建一个Socket的实例对象进行支持就可以了。Socket client=new Socket(InetAddress.getLocalHost(),5678);客户机必须知道有关服务器的IP地址,对于这一点Java也提供了一个相关的类InetAddress ,该对象的实例必须通过它的静态方法来提供。它的静态方法主要提供了得到本机IP 和通过名字或IP直接得到InetAddress的方法。

好了,上面的方法基本可以建立一条连线让两台计算机相互交流了。可是数据是如何传输的呢?事实上I/O操作总是和网络编程息息相关的。因为底层的网络是继续数据的,除非远程调用,处理问题的核心在执行上,否则数据的交互还是依赖于IO操作的。所以你也必须导入java.io这个包。Java的IO操作也不复杂,它提供了针对于字节流和Unicode的读者和写者,然后也提供了一个缓冲用于数据的读写。

BufferedReader in=newBufferedReader(newInputStream

Reader(server.getInputStream()));

PrintWriter out=newPrintWriter(server.getOutputStream());

上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作。而原始的字节流来源于Java Socket编程的两个方法。getInputStream()和getOutputStream()方分别用来得到输入和输出,那么现在有了基本的模型和基本的操作工具,我们可以做一个简单的Socket例程了。

服务方:

import java.io.*;

import java.net.*;publicclass MyServer {publicstatic void main(String[] args) throws IOException{

ServerSocket server=newServerSocket(5678);

Socket client=server.accept();

BufferedReader in=newBufferedReader(newInputStreamReader

(client.getInputStream()));

PrintWriter out=newPrintWriter(client.getOutputStream());while(true){Stringstr=in.readLine();

System.out.println(str);

out.println("has receive....");

out.flush();if(str.equals("end"))

break;

}

client.close();

}

}

这个Java Socket编程的主要目的在于服务器不断接收客户机所写入的信息,直到客户机发送"End"字符串就退出程序,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。

java怎么建立socket_Java Socket编程如何建立两者关系相关推荐

  1. Java Socket编程如何建立两者关系

    转自:http://developer.51cto.com/art/201003/190582.htm Java Socket编程需要大家详细的学习,有关的技术一直在不断的更新.那么要如何才能掌握好有 ...

  2. java网络编程之Socket编程

    概念 网络编程分为BIO(传统IO).NIO.AIO.Socket编程属于BIO这种传统IO. InetAddress java.net.InetAddress是JAVA中管理IP地址的类,常用 pu ...

  3. 【Java高级】初探socket编程 ——JavaSocket连接与简单通信

    新学期生活开始一段时间了,要继续学习一些新的技术(这里指socket /doge),目标是尝试完成一个在线即时聊天的小程序(尽量不咕).会更新一系列socket编程的技术文章,欢迎关注交流~ 那么千里 ...

  4. 【JAVA基础篇】Socket编程

    一.Socket的概念 Socket是一种通讯机制,通常称为套接字.英文原意是插座,顾明思义,Socket像是一个多孔插座,可以提供多个端口的连接服务 ps:至于socket在计算机术语中怎么就翻译成 ...

  5. Java套接字Socket编程--TCP参数

    在Java的Socket中,主要包含了以下可设置的TCP参数. 属性 说明 默认值 SO_TIMEOUT 对ServerSocket来说表示等待连接的最长空等待时间; 对Socket来说表示读数据最长 ...

  6. Java从零开始学四十五(Socket编程基础)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  7. java socket编程(转)

    [size=medium]一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数 ...

  8. java socket通信 客户端_JavaのSocket编程之简单客户端与服务器端通信

    Socket编程之简单客户端与服务器端通信 socket 通常用来实现客户端和服务端的连接,socket 是Tcp/Ip协议的一个十分流行的编程界面,一个socket 由一个Ip地址和一个端口号唯一确 ...

  9. socket编程总结

    一,网络编程中两个主要的问题 一个是怎样准确的定位网络上一台或多台主机,还有一个就是找到主机后怎样可靠高效的进行传输数据. 在TCP/IP协议中IP层主要负责网络主机的定位,传输数据的路由,由IP地址 ...

  10. api有哪些 javasocket_Java Socket编程以及与Linux Socket API关系

    Socket 编程(基于Linux) Socket独立于具体协议的网络编程接口,在ISO模型中,主要位于会话层和传输层之间:在通用的计算机网络五层模型中,主要位于应用层和传输层之间. Linux So ...

最新文章

  1. 【js细节剖析】通过=操作符为对象添加新属性时,结果会受到原型链上的同名属性影响...
  2. properties文件如何注解多行加#
  3. IDEA设置自定义代码模板
  4. android第三方登录appid,AndroidQQ第三方登录
  5. 显示和隐藏菜单栏(两种方式div、table)
  6. iOS : 静态库(.framework)合并
  7. php parseint,JavaScript parseInt() 函数
  8. HDU 5536 字典树
  9. android实现下载的核心代码
  10. 堆内存与栈内存能不能共享,不能,,通俗的比较,堆主要用来存放对象的,栈主要是用来执行程序的...
  11. js 时间戮转换为日期格式
  12. python爬虫常用模块介绍(1)_python爬虫常用模块介绍(1)
  13. matlab设置柱状图空白,MATLAB画柱状图时形状填充及颜色改变问题
  14. html画excel表格边框,设置Excel表格和单元格的边框和底纹 html表格单元格边框
  15. 爱国者(aigo)U391 128G 固态U盘制作PE启动盘
  16. 你可能不知道的 Ps 技巧
  17. Scratch之顺序、循环、选择三种程序结构
  18. html5 we3c,TWDDMM8DRT供应
  19. 51单片机C语言跑马灯,51单片机上实现控制跑马灯
  20. Linux 各种安装包

热门文章

  1. HotSpot VM运行时02---VM生命周期
  2. 学号 20165329 《Java程序设计》第4周学习总结
  3. 如何更方便地调试javascript代码
  4. jquery中checkbox全选失效的解决方法
  5. Ext-数据交换-ajax
  6. HCIE-Security Day10:6个实验理解VRRP与可靠性
  7. php 获取刚插入的一条,php获得刚插入数据的id 的几种方法
  8. HCIE Security 防火墙带宽管理 备考笔记(幕布)
  9. ELK详解(二十三)——elastalert告警优化
  10. 2018-4-18 Linux学习笔记