服务器端:
public class ServerSocketConnection extends Thread{
private Socket client;
ServerSocketConnection(Socket client){
this.client=client;
}
public void run(){
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
while (true) {
String str = in.readLine();
System.out.println("Server received:"+str);
out.println("服务器收到了....");
out.flush();
if (str.equals("end"))
break;
}
client.close();
} catch (IOException ex) {
} finally {
}
}
public static void main(String[] args) throws IOException{
//这个程序的主要目的在于服务器不断接收客户机所写入的信息只到。客户机发送"End"字符串就退出程序。
//并且服务器也会做出"Receive"为回应。告知客户机已接收到消息。多线程
ServerSocket server=new ServerSocket(9766);
while(true){
ServerSocketConnection ssc=new ServerSocketConnection(server.accept());
ssc.start();
}
}
}
客户端:
public class ClientSocketConnection {
static Socket server;
public static void main(String[] args) {
//客户机代码则是接受客户键盘输入,并把该信息输出,然后输出"End"用来做退出标识。
try {
// server = new Socket("192.168.5.166", 9766);
server = new Socket(InetAddress.getLocalHost(), 9766);
BufferedReader in = new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String str = br.readLine();
out.println("收到 from server:"+str);
out.flush();
System.out.println(in.readLine());
if (str.equals("end")) {
break;
}
}
server.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
可先启动服务器端ServerSocketConnection ,再启动ClientSocketConnection测试
分享到:
相关推荐
首先,我们要理解Socket的基本概念。Socket是网络通信中的一个抽象接口,它提供了进程间通信(IPC)的能力,尤其是在不同主机之间。TCP/IP协议栈中,Socket接口是应用程序与传输层之间的桥梁,通过Socket,程序可以...
首先,我们来看一下Socket的基本概念。Socket是网络编程中的一个抽象概念,它代表了两台机器间的一个双向通信链路。在Java中,`java.net.Socket`类和`java.net.ServerSocket`类提供了Socket编程的基础API。`...
标题“c# Socket长连接 短链接 自己封装 通讯”揭示了我们将讨论的主题:如何使用C#实现Socket的长连接和短连接,并自定义通信协议。这里的关键点包括: 1. **Socket基础**:Socket是网络通信中的一个抽象概念,它...
发送和读取数据是Socket编程的基本操作。在Socket长连接中,客户端和服务器可以通过write()函数发送数据,通过read()函数接收数据。发送数据时,需要将数据转化为字节流并写入Socket的输出流;读取数据时,从输入流...
Socket,又称套接字,是网络通信的基本单位,提供了进程间、网络间进程通信的一种接口。本示例可能是一个关于如何实现和管理Socket长连接的代码演示。 在TCP/IP协议族中,Socket分为两种类型:短连接(Short-lived ...
首先,我们需要理解Socket和线程连接池的基本概念。 **Socket**: Socket是网络通信的一种接口,它提供了进程间通信(IPC)和网络通信的能力。在TCP/IP协议栈中,Socket主要用于实现传输层的TCP或UDP协议,为应用...
Socket是网络编程的基本接口,它提供了进程间通信(IPC)的能力,尤其是在互联网上不同主机间的通信。Java中的Socket类和ServerSocket类分别代表客户端和服务器端的通信端点,它们通过TCP/IP协议进行数据传输。 在...
首先,让我们深入了解Socket的基本原理。Socket,也被称为套接字,是操作系统提供的一种通信接口,允许应用程序通过网络进行数据传输。在TCP/IP协议栈中,Socket分为两种类型:基于流的TCP Socket和基于数据报的UDP ...
总的来说,`socketServer`和`socketClient`的示例涵盖了Socket编程的基本操作,包括服务器的监听、连接,客户端的连接、通信等。在实现长连接时,需要注意维护连接状态、处理异常以及考虑性能优化。通过深入学习和...
首先,我们需要了解Socket的基本概念。Socket是进程间通信(IPC)的一种方式,它在网络层面上实现了传输层的TCP(Transmission Control Protocol,传输控制协议)或UDP(User Datagram Protocol,用户数据报协议)。...
- Socket是网络编程的基本组件,它提供了进程间通信(IPC)的能力,特别是在分布式系统中,通过TCP/IP协议在不同主机之间建立连接。 - 在Android中,我们可以使用`java.net.Socket`类来创建和管理Socket连接。 2....
Socket基本概念 Socket,通常称为套接字,是进程间通信的一种方式,特别是在网络环境中,它允许不同主机间的进程进行数据交换。Socket分为两种类型:流式Socket(TCP)和数据报Socket(UDP)。在本场景中,我们主要...
首先,我们需要理解Socket通信的基本原理。Socket是网络编程中的一个概念,它为应用程序提供了一种在两台机器间建立网络连接并进行数据交换的方法。在Android客户端与Java服务端之间建立长连接,意味着连接一旦建立...
首先,理解Socket的基本概念是必要的。Socket是应用层与传输层之间的接口,它允许应用程序通过TCP/IP协议栈与其他计算机进行通信。在TCP协议中,连接是基于三次握手建立的,而断开连接则需要四次挥手。因此,判断...
在深入探讨Socket连接池之前,我们需要了解两种基本的Socket连接方式:长链接和短链接。 ##### 2.1 长链接(Long Connection) 长链接是指当数据发送完成后,Socket连接并不会立即断开,而是保持连接状态直到发生...
首先,我们要理解Socket的基本概念。Socket是应用层与传输层之间的接口,它允许应用程序通过网络进行通信。在TCP/IP模型中,Socket主要用于实现客户端(Client)和服务器端(Server)的通信。TCP Socket提供了一种...
在这个"Socket连接示例代码"中,我们将深入探讨Socket的基本概念、工作原理以及如何通过客户端和服务器进行本地或局域网通信。 首先,Socket在计算机网络中扮演着桥梁的角色,它允许两个程序(通常是一个服务器和一...
对于初学者来说,理解并实践这个Socket测试连接程序,不仅可以掌握基本的Socket通信流程,还能学习到网络编程中的多线程、数据编码和解码、异常处理等重要概念。通过实际操作,可以更深入地理解网络通信的本质,为...
综上所述,"iOS下的Socket连接demo"涵盖了Socket通信的基本流程,客户端的连接发起,服务器端的监听,以及可能使用了第三方库来简化操作。理解这些知识点,对于iOS开发者来说,能够有效地实现网络通信功能,提高应用...
通过上述步骤,我们可以构建一个基本的C语言socket编程的客户端程序,并实现与服务器的长连接。在实际项目中,可能还需要考虑更多的因素,比如安全性、性能优化、并发处理等,这些都是网络编程深入研究的内容。同时...