所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
下面给出一个最简单的Socket通信的例子供初学者参考:
服务器端:ServerDemo.java
package com.lanber.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
/**
* 注意:Socket的发送与接收是需要同步进行的,即客户端发送一条信息,服务器必需先接收这条信息,
* 而后才可以向客户端发送信息,否则将会有运行时出错。
* @param args
*/
public static void main(String[] args) {
ServerSocket ss = null;
try {
ss = new ServerSocket(8888);
//服务器接收到客户端的数据后,创建与此客户端对话的Socket
Socket socket = ss.accept();
//用于向客户端发送数据的输出流
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
//用于接收客户端发来的数据的输入流
DataInputStream dis = new DataInputStream(socket.getInputStream());
System.out.println("服务器接收到客户端的连接请求:" + dis.readUTF());
//服务器向客户端发送连接成功确认信息
dos.writeUTF("接受连接请求,连接成功!");
//不需要继续使用此连接时,关闭连接
socket.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:ClientDemo.java
package com.lanber.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientDemo {
/**
* @param args
*/
public static void main(String[] args) {
Socket socket = null;
try {
socket = new Socket("localhost",8888);
//获取输出流,用于客户端向服务器端发送数据
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
//获取输入流,用于接收服务器端发送来的数据
DataInputStream dis = new DataInputStream(socket.getInputStream());
//客户端向服务器端发送数据
dos.writeUTF("我是客户端,请求连接!");
//打印出从服务器端接收到的数据
System.out.println(dis.readUTF());
//不需要继续使用此连接时,记得关闭哦
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
本文将详细解析标题为“最简单的socket通信例子”的Java Socket编程实例,帮助初学者理解如何实现客户端-服务器之间的通信。 首先,我们要明白Socket在计算机网络中的作用。Socket是网络通信的基本单元,它提供了...
在提供的"TestSocket"文件中,可能包含了一个简单的Socket通信实例,可能包括了客户端和服务器的代码。客户端代码通常会包含创建Socket、连接服务器、发送数据和关闭Socket的过程。服务器端则涉及创建Socket、绑定...
UDP Socket通信则相对简单,无需建立连接,直接发送数据包。虽然速度快,但不保证数据的顺序和可靠性,适合对实时性要求高的应用场景,如视频流传输。 五、协议实现 通信协议是Socket通信的基础,它可以是自定义的...
以上就是一个简单的C/C++ socket通信的例子,适合初学者入门。在实际项目中,可能需要处理多客户端连接、错误处理、线程同步等问题,这需要更深入的学习和实践。使用VS2005这样的IDE可以方便地调试和运行代码,对于...
在本文中,我们将探讨Qt库中的Socket通信,特别关注TCP和UDP协议的简单实现。Qt为开发者提供了方便的类库,使得网络编程变得更加简洁和直观,尤其适合那些不熟悉底层网络编程的初学者。 首先,让我们简要介绍一下...
本示例将深入解析"C# Socket tcp 最简单例子源码",帮助你理解如何在C#中实现TCP(传输控制协议)客户端和服务端的通信。 首先,TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它确保数据包按顺序无损...
在这个"最简单的双机通信例子vb"中,我们将探讨如何使用VB和Winsock来构建一个简单的客户端-服务器架构。 首先,我们来看服务器端的实现。在VB中创建一个新的工程,添加一个Winsock控件到窗体上,通常命名为`...
6. **接受连接**:当有客户端请求连接时,服务器使用`accept()`函数接收连接请求并创建一个新的Socket用于与客户端通信。例如:`int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);` 7. **发送和...
在这个“一个最简洁的Socket例子.rar”压缩包中,我们很可能是找到了一个简单的Java Socket编程示例。尽管没有具体的标签,我们可以从文件名推测,这个示例可能包含了图片(endo_Socket.gif)来辅助理解Socket的工作...
总的来说,"vc有关SOCKET编程例子"是一个实用的学习资源,它涵盖了网络通信的基础知识,帮助开发者理解和实现基于SOCKET的网络应用。无论是创建简单的聊天程序,还是复杂的文件传输服务,理解并掌握SOCKET编程都是至...
以下是一个简单的Socket通信示例(以TCP为例): ```python import socket # 创建Socket对象 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 server_address = ('localhost', ...
这样的一个简单交互展示了C# Socket通信的基本流程。 在实际应用中,你可能需要处理更复杂的网络状况,例如异常处理、多线程、异步操作等。C#的Socket类也提供了相应的支持,如BeginSend/EndSend和BeginReceive/...
在这个"socket实现通信"的例子中,开发者构建了一个基于GUI(图形用户界面)的简单应用,可能包含数据库连接功能,用于展示Socket通信的基本原理和实践。 首先,我们来理解Socket。Socket可以被看作是两个网络节点...
通过`new Socket(InetAddress address, int port)`构造方法,我们可以创建一个Socket实例并连接到指定服务器的特定端口。 2. **ServerSocket类**: - ServerSocket是Java服务器端的组件,用于监听来自客户端的连接...
以下是一个简单的J2ME客户端示例: ```java import javax.microedition.io.Connector; import javax.microedition.io.StreamConnection; public class J2MEClient { public static void main(String[] args) { ...
在C#编程中,Socket是网络通信的基本组件,它提供了进程间、网络间的数据传输能力。本示例主要探讨如何使用C#的Socket类进行文件的传输,包括文件名和文件...通过实际操作,你会更深入地掌握C# Socket通信的核心技巧。
2. **IP地址与端口号**: 每个Socket都与一个特定的IP地址和端口号关联,用于在网络中定位和识别通信的双方。 ### 使用场景 1. **客户端-服务器通信**: 这是最常见的Socket应用,如浏览器与Web服务器之间的交互。 2....
总结一下,"Winform(Socket例子)"是一个展示如何在C# Winform应用中使用Socket通信的例子。开发者使用VS2012创建了一个TCP Socket服务器,它接受客户端连接,读取并回应消息。客户端则连接到服务器,发送数据并接收...
在Java中,Socket类和ServerSocket类是实现Socket通信的核心类。 在标题提及的场景中,我们有两个主要的角色:服务端(Server)和客户端(Client)。服务端通过创建ServerSocket监听特定的端口,等待客户端的连接...