• 通过TCP建立可靠通讯信道

1)为了对应TCP协议里的客户端和服务器端,Socket包提供了Socket类和ServerSocket类。

2)Socket类构造函数及相关方法

Public Socket();

public Socket(InetAddress address,int port);//本机IP和端口

public Socket(Striing host,int port);//本机IP和端口

public void connect(SocketAddress endpoint);//将本socket连接到endpoint指定的主机上

public void bind(SocketAddress bindpoint);//将本socket绑定到bindpoint指定的主机

public InputStream getInputStream();、public OutputStream getOutputStream();//获取通信输入流和输出流

public void close();//4次握手FIN的封装

public InetAddress getLocalAddress();、public int getPort();//获取本socket对应主机(即本机)的IP和端口

3)ServerSocket类构造函数及相关方法

public ServerSocket();

public Socket(int port);//本服务器socket,端口有参数指定,ip即本地

public Socket accept();//返回描述客户端链接句柄的socket类对象

public void bind(SocketAddress bindpoint);//将本ServerSocket绑定到bindpoint指定的主机

public void close();

public InetAddress getInetAddress()、public int getLocalPort();//获取本机ip和端口

  • 通过UDP高效的发送数据报文

1)DatagramSocket类封装了发送和接受数据报文的方法,DatagramPacket类封装了“数据报文”的属性。

2)DatagramSocket类构造函数及相关方法

Public DatagramSocket();

public DatagramSocket(int port);//本机端口

public DatagramSocket(int port,InetAddress address,);//本机IP和端口

void connect(InetAddress address,int port);//

void send(DatagramPacket p);//

void receive(DatagramPacket p);//

void close();//

InetAddress getLocalAddress();、public int getPort();//

void setSoTimeout(int timeout);//

int getSoTimeout();//

3)DatagramPacket类构造函数及相关方法

DatagramPacket(byte[] buf,int length);//

DatagramPacket(byte[] buf,int length,InetAddress address,int port);//报文长度与报文目的地址

byte[] getData();、int getLength();//配合使用    void setData(byte[] buf);void setLength(int length);//配合使用

InetAddress getAddress();//获取目的主机地址        void setAddress(InetAddress iaddr);//

int getPort();//获取目的主机端口          void setPort(int port);//

  • 面向套接字编程

1)使用套接字实现基于TCP协议的服务器和客户端程序

服务器主要操作:

用一个端口实例化ServerSocket,从而监听该端口的链接请求;

调用accetp方法,接受客户端的连接请求;

利用accept方法返回的客户端socket对象,进行读写IO的操作;

通讯完成,关闭打开的流和socket对象。

客户端主要操作:

用服务器ip和端口初始化socket对象;

调用connect方法,向服务器发起连接请求;

将要发送给服务器的内容填充到IO对象中,如BufferedReader、PrintWriter;

利用getInputStream和getOutputStream方法,向服务器发送和接受数据;

通讯完成,关闭打开的IO对象和socket。

2)使用套接字连接多个客户机————基于多线程的C/S通讯

3)UDP协议与传输数据报文

  • Java远程方法调用(RMI)开发概述————透明的调用远端方法

1)RMI,远程方法调用,可以用来构建Java应用程序间的分布式模型,它允许网络主机之间可以相互地无障碍地调用对方的类和方法,这是实现分布式的基础。把服务的调用者称为RMI客户端,把服务的提供者称为RMI服务器。

JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)的更多相关文章

  1. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  2. 网络编程——TCP协议、UDP协议、socket套接字、粘包问题以及解决方法

    网络编程--TCP协议.UDP协议.socket套接字.粘包问题以及解决方法 TCP协议(流式协议) ​ 当应用程序想通过TCP协议实现远程通信时,彼此之间必须先建立双向通信通道,基于该双向通道实现数 ...

  3. 网络编程之Socket & ServerSocket

    网络编程之Socket & ServerSocket Socket:网络套接字,网络插座,建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP ...

  4. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  5. python | 网络编程(socket、udp、tcp)

    一.套接字 socket 1.1 作用:实现不同主机间的进程间通信(不同电脑.手机等设备之间收发数据) 1.2 分类:udp.tcp 1.3 创建 socket import socket socke ...

  6. java之TCP(Socket,serverSocket)实例

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  7. python语法基础-网络编程-TCP协议和UDP协议

    ###############    网络编程    ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...

  8. Python中的socket网络编程(TCP/IP,UDP)讲解

    在网络编程中的一个基本组件就是套接字(socket).套接字基本上是两个端点的程序之间的"信息通道".程序可能分布在不同的计算机上,通过套接字互相发送信息.套接字包括两个:服务器套 ...

  9. 网络、TCP协议与UDP协议

    1.网络模型 (1)什么是网络模型 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外 ...

  10. Java联网技术之一TCP socket

    最近突然对java网络编程编程这一块非常感兴趣,于是找了很多资料,一点点的尝试,下面是自己的一点小见解,不喜勿喷,欢迎指正. 首先说说客户端和服务器端吧, 如果是网页的话,客户端通过网页的链接对服务器 ...

随机推荐

  1. Hibernate逍遥游记-第13章 映射实体关联关系-004双向多对多(inverse="true")

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  2. WP之Sql Server CE数据库

    如何在WP8中进行数据存储,你首先想到应该是独立存储,但是独立存储似乎存储文件更方便,如果我们希望像处理对象的形式,该怎么办呢,答案就是Sql Server CE. Sql Server CE并不是新 ...

  3. android从应用到驱动之—camera(1)---程序调用流程

    一.开篇 写博客还得写开篇介绍,可惜,这个不是我所擅长的.就按我自己的想法写吧. 话说camera模块,从上层到底层一共包含着这么几个部分: 1.apk------java语言 2.camera的ja ...

  4. KMP算法的C++实现

    这个问题阮一峰老师讲的很清楚,链接 这里我只贴一下我的C++实现代码: #include <iostream> #include <cstring> #include < ...

  5. 我的第一个jquery插件:下拉多选框

    <!DOCTYPE HTML> <html> <head> <title> New Document </title> <meta n ...

  6. gulp edm测试

    gulp工具的 gulp-mailgun 插件可以将你的html代码,通过mailgun服务器来发送,用于测试,用这个工具发送邮件最适合不过了. 首先我们需要引入gulp和gulp-mailgun模块 ...

  7. next_permutation()函数 和 prev_permutation() 按字典序求全排列

    next_permutation功能:    求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件<algorithm> 与之完全相反的函数还有prev_permutation 这个 ...

  8. poj 1185 炮兵阵地(三维状态压缩dP)

    题目:http://poj.org/problem?id=1185 思路: d[i][j][k]表示第i行的状态为第k个状态,第i-1行的状态为第j个状态的时候 的炮的数量. 1表示放大炮, 地形状态 ...

  9. public,protected,friendly,private的访问权限

    请说出作用域public,private,protected,以及不写时的区别 这四个作用域的可见范围如下表所示. 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly. 作用域   ...

  10. bzoj4044

    这题简直了………… 首先根据操作可知,我们肯定是先造出某个偶数长度的回文串,然后添加若干字符得到设回文串长为len[x] 则ans=min(n-len[x]+f[x]); 那么问题就是制造这个串的回文 ...