import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public Server() {
try {
System.out.println("Server starting... port:9998...");
ServerSocket ss = new ServerSocket(9998);
Socket s = ss.accept();
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User userObj = (User) ois.readObject();
System.out.println("Server...从客户端读取:" + userObj.toString());
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(userObj);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Server();
}
}
服务器端,读取客户端数据需要处理业务则处理业务并响应。
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public Client() {
try {
System.out.println("client ...");
Socket s = new Socket("127.0.0.1", 9998);
User user = new User("FrankcoLuo", 90);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(user);
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User userObj = (User) ois.readObject();
System.out.println("Client...从服务器读取:" + userObj.toString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Client();
}
}
客户端。
import java.io.Serializable;
public class User implements Serializable{
private String name;
private int age;
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User name:" + name + ", age:" + age;
}
}
User类,需要实现序列化。否则会报java.io.NotSerializableException异常。
输出:
1.服务端console:
Server starting... port:9998...
Server...从客户端读取:User name:FrankcoLuo, age:90
2.客户端console:
client ...
Client...从服务器读取:User name:FrankcoLuo, age:90
分享到:
相关推荐
在TCP/IP协议栈中,Socket分为两种类型:流式Socket(TCP)和数据报Socket(UDP)。在这个实例中,我们主要关注流式Socket,它提供面向连接、可靠的数据传输服务。 1. **Server端编程** - **创建ServerSocket**: ...
本篇文章将详细探讨Android环境下如何进行Socket Client端和Socket Server端的数据发送与接收。 1. **Socket基础知识** - **Socket定义**:Socket是网络编程中的一个接口,它允许应用程序通过TCP/IP协议进行数据...
在编程领域,Socket是网络通信的基本接口,尤其在TCP/IP协议栈中,它扮演着至关重要的角色。"socket-server&client;...在学习过程中,不断实践和调试代码,结合网络基础知识,将有助于你更好地掌握Socket编程。
综上所述,"c++socket_server_client"项目展示了如何在Windows环境下使用C++进行socket编程,实现一个支持群聊、消息推送、文件二进制流传输和加密功能的服务器和客户端系统。对于学习网络编程和C++的开发者来说,这...
Socket服务器和客户端是计算机网络编程中的重要组成部分,主要用于实现应用程序之间的通信。在本文中,我们将深入探讨基于C#编程语言的Socket服务器与客户端的实现,以及如何构建CS(客户端-服务器)架构,实现单...
在IT领域,网络编程是不可或缺的一部分,而Socket编程则是实现客户端和服务器...通过对`server.cpp`和`client.cpp`代码的学习,我们可以深入理解socket编程和`select`模型的工作原理,为后续的网络编程打下坚实基础。
Socket编程通常涉及TCP(传输控制协议)或UDP(用户数据报协议),这里我们将主要关注更可靠的TCP连接。 首先,我们需要包含必要的头文件,如`#include <sys/socket.h>`、`#include <netinet/in.h>`和`#include ...
Socket通信是计算机网络编程中的重要概念,主要用于实现客户端(Client)和服务器端(Server)之间的数据交换。在C/S模型中,服务器作为服务提供者,等待客户端的连接请求,而客户端则是服务的使用者,主动发起连接...
总的来说,C# Socket编程涵盖了网络通信的核心概念,包括建立连接、数据传输和断开连接等步骤。了解和掌握这些基础知识,对于开发实时通信应用,如聊天室、文件传输等具有重要意义。通过实践和调试这些示例代码,...
本主题聚焦于使用Java进行基于TCP的Socket编程,通过`File_client.java`和`File_server.java`两个文件来实现服务器和客户端之间的数据交换。 首先,TCP Socket编程的基础是Java的`java.net.Socket`和`java.net....
在这个名为“一个简单的socket程序,包含server和client”的项目中,我们将深入探讨Socket的基本概念、工作原理以及如何创建和运行一个简单的服务器(Server)和客户端(Client)程序。 首先,Socket可以理解为网络...
总的来说,`TCP client.java`和`TCP server.java`是TCP Socket编程的基础,它们展示了如何在Java中实现客户端和服务器之间的通信。通过学习和理解这些基础,开发者可以构建更复杂的网络应用,如聊天程序、文件传输...
在本文中,我们将深入探讨如何在Visual Studio 2008环境下使用C++和Socket编程技术来实现一个简单的文件服务器(FileServer)和文件客户端(FileClient),以便于两者之间进行文件的发送与接收。首先,我们需要理解...
在"Socket_Server"文件中,可能包含了服务器的启动、监听、接受连接和数据交换的代码。 4. **Socket客户端**:客户端也需要创建Socket对象,并使用Connect方法连接到服务器的IP和端口。连接成功后,客户端可以通过...
通过阅读和分析这些代码,你可以更深入地理解SOCKET编程的细节,例如错误处理、同步异步模式的选择以及数据编码解码等。 总结来说,C++中的SOCKET编程是通过一系列的函数调用来完成服务器与客户端之间的通信。无论...
CSocket类简化了Socket编程,它包含了建立连接、发送和接收数据的基本方法,如Create、Connect、Accept、Send和Receive等。 **三、Server端实现** 1. **初始化**: 在MFC服务器端程序中,首先需要调用AfxSocketInit...
在实际应用中,数据传输通常涉及输入流和输出流对象,如`BufferedReader`和`PrintWriter`,它们分别用于读取和写入数据。例如,服务器可以读取客户端发送的信息并做出响应,然后将响应回传给客户端。 开发过程中,...
在标题“Socket编程”中,我们聚焦的是服务器端的Server Socket和客户端的Client Socket。Socket是网络编程的一个抽象接口,它允许两个运行在网络上的程序通过网络进行数据交换。 在服务器端,Server Socket是服务...
在本实例中,我们将深入探讨如何使用JavaFX结合Socket编程实现一个多线程的通信程序,包括Server端和Client端。 首先,让我们了解Socket编程的基本概念。Socket是网络通信中的一个端点,它允许两个远程系统通过网络...
### TCL Socket 编程实例详解 #### 一、TCL Socket 概述 TCL(Tool Command Language)是一...通过以上示例,我们可以看到TCL Socket编程的基本流程和技术要点,这对于理解和实现基于TCL的网络应用程序是非常有用的。