1,什么是Socket
网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。
但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。
2,Socket通讯的过程
Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信。
对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:
(1) 创建Socket;
(2) 打开连接到Socket的输入/出流;
(3) 按照一定的协议对Socket进行读/写操作;
(4) 关闭Socket.(在实际应用中,并未使用到显示的close,虽然很多文章都推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以并未造成什么影响。)
3,创建Socket
创建Socket
java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用很方便。其构造方法如下:
Socket(InetAddress address, int port);
Socket(InetAddress address, int port, boolean stream);
Socket(String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host, int port, InetAddress localAddr, int localPort)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
ServerSocket(int port);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)
其中address、host和port分别是双向连接中另一方的IP地址、主机名和端 口号,stream指明socket是流socket还是数据报socket,localPort表示本地主机的端口号,localAddr和 bindAddr是本地机器的地址(ServerSocket的主机地址),impl是socket的父类,既可以用来创建serverSocket又可 以用来创建Socket。count则表示服务端所能支持的最大连接数。例如:学习视频网 http://www.xxspw.com
Socket client = new Socket("127.0.01.", 80);
ServerSocket server = new ServerSocket(80);
注意,在选择端口时,必须小心。每一个端口提供一种特定的服务,只有给出正确的端口,才 能获得相应的服务。0~1023的端口号为系统所保留,例如http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口号为23, 所以我们在选择端口号时,最好选择一个大于1023的数以防止发生冲突。
在创建socket时如果发生错误,将产生IOException,在程序中必须对之作出处理。所以在创建Socket或ServerSocket是必须捕获或抛出例外。
几个简单的例子:
【1】
(1)客户端:
(2)服务器端:
首先 运行 服务器端,在运行客户端:结果:hello/127.0.0.1port#1869bye-bye
【2】
(1)服务器端
(2)客户端:
分享到:
相关推荐
java socket 编程,Java socket 编程实例,对于初学者是一个非常好的东西,对于有过经验的是非常好的更深了解的东西,希望大家共同进步
java大学教程源码中关于socket编程的三个实例
Java网络编程的小例子,分服务器端和客户端,可以相互通信,有注释!
Java socket编程实例.pdf
java socket网络编程,包括服务与客户端,多线程支持多客户端同时在线。
本压缩包包括Socket的单客户服务器通信,多客户服务器相互通信,对象传输,广播式操作等实例,所有实例都在JDK1.4下调试通过
java socket 实现简单的客户端和服务端通信
关于java的网络编程的多个实例,Socket的用法,UDP,TCP协议的编程。
用java编写的基于UDP和TCP两种协议编写的Socket(网络编程)案列
java socket编程实例,各种实例打包
Java socket编程实例代码,文章讲解可以参考我的blog
Java Socket网络编程实例.pdf 学习资料 复习资料 教学资源
网络组建与实施、SOCKET编程(包括MFC SOCKET编程和JAVA SOCKET编程)等编程实例
android socket 编程实例 客户端是android应用程序, socket服务器端使用java作为服务器
java Udp 收发结构体实例 Socket编程 Udp收发大数据 单向传输 无需握手 广播 指定ip
Java Socket 网络编程大全--用实例的方式详细地讲解了java socket网络编程的内容,很全
用JAVA实现的TCP通信
用JAVA实现的文件上传,控制台输入,保存到数据库
Java网络编程(概念+实例) 针对Socket 编程、ServerSocket 类的方法、Socket 类的方法等进行了介绍 针对网络编程进行了实例展示
1、供java socket编程的初学者学习使用,严禁用作作业抄袭和商业用途。若转载源代码,请注明原作者以及作者的博客地址。 2、TCPChatRoomServer(服务器端),TCPChatRoomClient(客户端) 3、开发环境:MyEclipse 6.0...