`
xiangxuehai_jiaer
  • 浏览: 91869 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

Java的Socket编程

 
阅读更多

问题:编写两个Java类,分别实现Scoket Client Scoket server 功能,有client传递一个串行化的值对象(如UserInfo)到Server端,服务器端将传递过来的对象属性打印输出到控制台。

 

UserInfo实现序列化:

package com.socket;

import java.io.Serializable;

public class UserInfo implements Serializable {

	private static final long serialVersionUID = 1L;

	private String username;
	private String password;

	public UserInfo() {
	}

	public UserInfo(String username, String password) {
		this.username = username;
		this.password = password;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}
package com.socket;

import java.io.*;
import java.net.*;

//客户端

public class Client {
	public static void main(String[] args) throws IOException {

		Socket echoSocket = null; // 客户端对服务器应用程序建立Socket连接

		OutputStream out = null;

		ObjectOutputStream writer = null; // 写对象

		// UserInfo对象
		UserInfo user = new UserInfo("song", "123");

		try {

			echoSocket = new Socket("127.0.0.1", 477);// 客户端得知道IP地址与端口号

			// 客户端写
			out = echoSocket.getOutputStream();// 如果为 true,则 println、printf 或
												// format 方法将刷新输出缓冲区

			// 写对象流
			writer = new ObjectOutputStream(out);

			// 写对象
			writer.writeObject(user);

		} catch (UnknownHostException e) {

			System.err.println("找不到地址: 127.0.0.1");
			System.exit(1);

		} catch (IOException e) {

			System.err.println("找不到127.0.0.1的链接");
			System.exit(1);

		} finally {
			// 关闭打开的流

			if (writer != null) {
				writer.close();
			}
			
			if (out != null) {
				out.close();
			}

			if (echoSocket != null) {
				echoSocket.close();
			}
		}
	}
}

 
package com.socket;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

//服务端
public class Server {

	public static void main(String[] args) throws IOException {

		InputStream in = null;

		ObjectInputStream read = null; // 读对象

		// 服务器应用程序对特定端口创建出ServerSocket
		ServerSocket serverSocket = null;

		try {

			serverSocket = new ServerSocket(477);// 创建绑定到特定端口的服务器套接字

		} catch (IOException e) {

			System.err.println("找不到端口: 400");
			System.exit(1);

		}

		Socket clientSocket = null;
		try {
			// 服务器创建出与客户端通信的新Socket
			// 服务器得到一个客户端
			clientSocket = serverSocket.accept();// 侦听并接受到此套接字的连接。此方法在进行连接之前一直阻塞。

			// 客户端读
			in = clientSocket.getInputStream();

			//读对象流
			read = new ObjectInputStream(in);

			// 读对象
			UserInfo user = (UserInfo) read.readObject();

			// 打印到控制台
			System.out.println("姓名" + "\t" + "密码");
			System.out.println(user.getUsername() + "\t" + user.getPassword());

		} catch (Exception e) {

			System.err.println("接收失败!");
			System.exit(1);

		} finally {

			// 关闭流要规范
			if (null != read) {
				read.close();
			}

			if (null != in) {
				in.close();
			}

			if (null != clientSocket) {
				clientSocket.close();
			}

			if (null != serverSocket) {
				serverSocket.close();
			}
		}
	}
}
 

 

分享到:
评论

相关推荐

    java socket编程

    Java Socket编程是Java平台中用于实现网络通信的核心API,它基于TCP/IP协议栈,提供了低级别的、面向连接的、可靠的字节流通信。在本文中,我们将深入探讨Java Socket编程的关键概念、工作原理以及如何创建服务端和...

    Java socket编程实现两台主机间的通信

    Java Socket 编程实现两台主机间的通信 Java Socket 编程是 Java 语言中用于实现网络通信的编程技术。通过使用 Socket 编程,可以实现两台主机之间的通信,实现数据的传输和交换。本文将详细介绍 Java Socket 编程...

    java socket 编程

    java socket编程 java网络编程 课件 java socket编程 java网络编程 课件

    JAVA Socket编程实现文件上传

    Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信连接的能力。在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库...

    java socket 编程,Java socket 编程实例

    ### Java Socket编程详解及实例分析 #### 一、Socket编程基础概述 在计算机网络通信领域,Socket编程是一种广泛使用的通信方式。它为不同主机上的进程提供了双向通信的能力,是网络编程的基础之一。Java语言提供了...

    Java Socket 编程html教程

    Java Socket编程是Java网络编程的重要组成部分,主要用于实现客户端与服务器之间的通信。在本文中,我们将深入探讨Java Socket编程的基础知识,以及如何结合HTML进行交互。 首先,Java Socket是TCP/IP协议族的一...

    Java Socket 编程源代码示例

    import java.io.*; import java.net.*; import java.util.*; import java.lang.*; public class Server extends ServerSocket { private static ArrayList User_List = new ArrayList(); private static ...

    java socket 编程文档

    本文将深入探讨Java Socket编程的基础知识、关键概念以及如何在实践中应用。 一、Socket概述 Socket,也被称为套接字,是网络通信的端点,可以理解为两个应用程序之间的连接通道。在Java中,Socket类(java.net....

    华科-计算机网络实验报告-Java Socket编程-网络组建实验.docx

    Java Socket 编程在计算机网络实验中的应用 Java Socket 编程是计算机网络实验中的一个重要组成部分,它允许开发者创建可以在网络上传输数据的应用程序。下面是关于 Java Socket 编程在计算机网络实验中的应用的...

    总结java_socket编程.doc

    在Java中,Socket编程主要是基于TCP/IP协议的网络编程。 网络编程的两个主要问题 在网络编程中,有两个主要的问题需要解决:一是如何准确地定位网络上的一台或多台主机,二是找到主机后如何可靠高效地进行数据传输...

    Java Socket编程:文件传输.doc

    Java Socket 编程:文件传输 Java Socket 编程是 Java 语言中的一种网络编程技术,用于实现客户端和服务器端之间的数据传输。文件传输是 Java Socket 编程中的一种常见应用场景,通过建立客户端和服务器端之间的...

    Java socket编程实例.pdf

    本文将通过一个具体的Java Socket编程实例来深入探讨如何使用Java实现客户端与服务端之间的通信。 #### 二、基础知识概述 在开始具体实例之前,我们需要了解一些基本概念: - **Socket**:Socket是一种用于在网络...

    java Socket 编程源码

    Java Socket编程是网络编程的基础,它提供了在Java中进行低级网络通信的接口。Socket是TCP/IP协议族的一部分,用于实现客户端与服务器之间的双向通信。在这个"java TCP_IP Socket 编程"源码中,我们可以深入理解...

    java socket编程实例(出自《java大学教程》)

    学习这些Java Socket编程实例,有助于理解TCP/IP通信的基本原理,为构建实际的网络应用程序打下坚实的基础。你可以通过调试和修改`SocketTest`代码,进一步探索和实践Socket编程的不同场景,如文件传输、聊天应用等...

    浅出Java Socket编程

    Java Socket编程是网络编程的基础,它是Java平台中用于实现客户端-服务器通信的关键组件。本教程将深入浅出地探讨Java Socket编程的核心概念和技术,帮助开发者理解如何构建可靠的网络应用程序。 一、Socket概述 ...

    Java Socket编程笔记_动力节点Java学院整理

    异常处理在Java Socket编程中扮演着重要角色。主要涉及四种异常类型: 1. `UnknownHostException`: 表示主机名或IP地址无法解析,通常是因为网络不可达或者主机名不存在。 2. `ConnectException`: 当尝试连接到...

    Java Socket编程.pdf

    Java Socket编程是网络编程的一个重要部分,它允许在网络中的计算机之间进行数据交换。Socket编程是基于TCP/IP协议的,因此了解计算机网络、分组报文和协议对于掌握Socket编程来说至关重要。接下来,我将详细解释...

    Java Socket网络编程.pdf

    在Java中,Socket编程主要涉及两个关键类:`ServerSocket`和`Socket`。`ServerSocket`类用于服务器端,它监听指定端口的连接请求。创建一个`ServerSocket`实例,例如`ServerSocket server = new ServerSocket(9998);...

    三步学会Java_Socket编程

    在Java中,Socket编程是实现网络通信的基础,它提供了进程间通信的能力,使得两个相隔万里的计算机可以通过互联网进行数据交换。本篇文章将深入讲解如何通过三步学习Java Socket编程。 **第一步:理解Socket** ...

    JAVA Socket 经典教程

    本教程将深入探讨Java Socket编程的核心概念,以及如何利用它进行网络通信。 1. **Java Socket基础** - **Socket的概念**:Socket是网络通信中的一个端点,可以理解为两台机器间通信的桥梁。在Java中,Socket类...

Global site tag (gtag.js) - Google Analytics