Socket进行的操作步骤为:
1.连接远程服务器
2.本地和远程主机从socket取得输入流和输出流.
3.数据传输完毕,一端(Http)或者两端关闭连接.
构造函数Socket(String host,int port)throws UnknownHostException,IOExceptionm
的作用是 1.创建Socket对象 2尝试连接远程主机的socket
可以用此来确定端口是否占用,代码如下:
String host="localhost";
for(int i=0;i<1024;i++)
{
try {
Socket s=new Socket(host,i);
System.out.println("There is a server on port "+i);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
break;
} catch (IOException e) {
}
}
public Socket(InetAddress host,int port) throws IOException:与上面类似
public Socket(String host,int port,InetAddress interface ,int localPort)throws IOException,UnknwonHostException
:前两个参数指定远程主机和端口 后两个参数是指定从本地的主机网络接口和端口进行连接
Socket的常用方法:
public InetAddress getInetAddress():socket连接哪台远程主机
public int getPort():socket连接远程主机的端口号
public int getLocalPort():socket连接本地主机的端口号
public InetAddress getLocalAddress():socket邦定哪个网络接口
如下面代码所示:
try
{
Socket theSocket=new Socket("www.sina.com.cn",80);
InetAddress host=theSocket.getInetAddress();
int port=theSocket.getPort();
int localPort=theSocket.getLocalPort();
InetAddress localAddr=theSocket.getLocalAddress();
System.out.println("host="+host);
System.out.println("port="+port);
System.out.println("localport="+localPort);
System.out.println("localAddr="+localAddr);
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
}
执行结果为:
host=www.sina.com.cn/221.130.29.18
port=80
localport=4206
localAddr=/192.168.1.104
关闭Socket:
使用完一个socket之后应该将其关闭,一般在finally里面处理。
关闭一个socket之后,其InetAddress,端口号、本地地址、本地端口号,输入流、输出流 仍然可以访问,但是读取输入流数据或者向输出流写数据都会抛出一个IOException异常。
关闭Socket之前要判断socket的状态,
isClosed()方法只会对连接的socket返回正确结果,如果一个socket从未连接过,isClosed仍然返回false.
因而关闭socket的条件为boolean connected=socket.isConnected()&&!socket.isClosed()
Socket的选项:
TCP_NODELAY:设置为true,可确保包尽可能快的发送
SO_TIMEOUT:正常情况下,当读取socket时 read()会阻塞尽可能长的时间,已得到足够的字节。 0:表示无限超时
SO_RCVBUF setReceiveBufferSize()方法可设置socket输入缓冲所使用的字节数。
SO_KEEPALIVE: 客户端会偶尔通过一个空闲连接发送一个数据包(一般2个小时),确保服务器未崩溃。如果服务器没能相应此包,客户端会连续尝试11分钟时间,知道收到相应为止,如果在12分钟内仍未收到相应,客户端就关闭socket,没有SO_KEEPALIVE,不活动的客户端可能会永远存在下去,而不会注意到服务器已经崩溃
SO_REUSEADDR:
分享到:
相关推荐
Java客户端Socket与Mina服务端通信是网络编程中常见的应用场景,尤其在开发分布式系统或实时数据传输时。这里我们将深入探讨这两个技术,并了解如何通过它们建立保持长连接的通信。 首先,Socket是Java中用于实现...
### Java Socket 长连接客户端和服务端实现 在Java中,使用Socket进行网络通信是一种非常常见的技术手段。本文将详细解读“Java Socket长连接客户端服务端(标准实例)”的相关知识点,包括其实现原理、代码解析及...
在Java中,`java.net.Socket`类代表了客户端Socket,而`ServerSocket`类则用于服务器端。 创建一个Java Socket客户端的步骤通常包括以下部分: 1. **导入必要的库**: 首先,我们需要导入`java.net.Socket`和`...
Java客户端Socket的基本步骤如下: 1. 创建`Socket`实例,指定服务器地址和端口。 2. 获取Socket的输出流和输入流。 3. 使用输出流发送数据,使用输入流接收数据。 4. 完成通信后,关闭Socket及其相关的流。 为了...
java socket client 断线重连的简单实现 有什么意见可以提哦
本文将深入探讨如何使用Java实现服务器客户端之间的Socket调用,并通过具体的示例代码来阐述基本功能。 首先,我们需要理解Socket的工作原理。Socket可以被视为网络上的端点,允许应用程序在两个网络连接之间建立...
Java 编写基于 CMPP3.0 的 Socket 服务端和客户端是移动通讯领域中常见的技术实践,主要用于实现与移动运营商的短信网关进行数据交互。CMPP(China Mobile Short Message Peer-to-Peer)是中国移动制定的一种短消息...
这个软件可以任意设置目标IP和端口实现连接相应的主机服务器,编写语言为java,安装时候需要有相应的java环境运行。
6. **版本兼容性**:注意确认所使用的Java客户端库版本与你的Socket.IO服务器版本兼容,因为不兼容的版本可能会导致通信问题。 通过以上步骤,你应该能够在Java项目中成功集成Socket.IO客户端,并实现与服务器的...
Java 中的 Socket.IO 客户端实现Socket.IO-Java 客户端socket.io-java-client 是 Java 版socket.io的一个易于使用的实现。它使用Weberknecht作为传输后端,但编写自己的传输也很容易。请参阅下面的描述。还包括一个 ...
Java基于socket实现的客户端和服务端通信功能完整实例 在Java中,Socket是实现网络通信的基础,通过Socket可以实现客户端和服务器端之间的通信。本文将详细介绍Java基于Socket实现的客户端和服务端通信功能,包括...
- 创建Socket:在Java客户端,同样先创建Socket对象,通常使用`Socket()`构造函数指定服务器的IP地址和端口号。 - 建立连接:客户端的Socket尝试与服务器建立连接。 - 数据收发:客户端使用`getOutputStream()`...
Socket客户端程序是Java编程语言中实现网络通信的基础组件,它基于TCP/IP协议栈,用于创建两个应用程序之间的连接,使得数据可以在它们之间传输。在Java中,`java.net.Socket`类和`java.net.ServerSocket`类是实现...
基于java的socket开发,简单的客户端程序,可向服务器发送和接受请求,并能保存成文件。
本教程将深入探讨如何使用Java Socket库创建TCP客户端和服务器。 首先,我们从服务器端开始。在Java中,`java.net.ServerSocket`类用于创建服务器端的Socket,监听特定端口上的连接请求。以下是一个简单的服务器...
Java中的Socket类是进行网络通信的核心组件,它主要用于实现客户端与服务器之间的TCP连接,从而进行双向数据传输。本文将深入探讨如何使用Socket类接收和发送数据。 首先,我们需要理解Socket类的基本概念。Socket...
java socket做的通信client端程序
本教程将深入探讨如何在C/C++服务器环境下利用Visual Studio 2010与Java客户端环境下的Eclipse进行Socket通信。 一、C/C++服务器端(VS2010) 在Visual Studio 2010中,我们可以使用Winsock库来实现Socket编程。...
本项目是使用java Socket编程实现的一个简单的FTP服务器和客户端。 客户端目前实现的功能是登录,刷新,上传和下载。同时具有主动模式和被动模式两种模式。 服务器端实现的功能有登录、刷新、上传、下载、列出文件...