`
zjx2388
  • 浏览: 1334743 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java,socket编程--server,client简单通信

阅读更多

Socket的网络接口编程,实现server和client的连接建立,以及简单通信.代码如下:

 

 

package com.rnd.cmbconn.server;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 1.建立一个ServerSocket
 * 2.建立socket的连接
 * 3.数据输出流,数据输入流
 * 4.读取client的数据
 * 5.给出一个响应道client
 * 6.关闭连接
 * 
 * @author Zhou-Jingxian
 *
 */
public class Server {
	
	public static void main(String[] args) {
		ServerSocket serverSocket = null;
		Socket socket = null;
		
		try {
			
			serverSocket = new ServerSocket(8888);
			
			socket = serverSocket.accept();
			
			DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
			
			DataInputStream dis = new DataInputStream(socket.getInputStream());
			
			System.out.println("服务器接受到客户端的连接请求:" + dis.readUTF());
			
			dos.writeUTF("接收连接请求,连接成功!---消息来自服务端");
			
		} catch (IOException e) {
			e.printStackTrace();
			
		} finally {
			try {
				if(!socket.isClosed()) socket.close();
				if(!serverSocket.isClosed()) serverSocket.close();
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}

 

package com.rnd.cmbconn.client;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 1.建立一个socket
 * 2.数据输出流,数据输入流
 * 3.向server写数据
 * 4.读取server的响应数据
 * 5.关闭连接
 * 
 * @author Zhou-Jingxian
 *
 */
public class Client {
	
	public static void main(String[] args) {
		Socket socket = null;
		
		try {
			socket = new Socket("172.16.11.9", 8888);
			
			DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
			
			DataInputStream dis = new DataInputStream(socket.getInputStream());
			
			dos.writeUTF("客户端,请求建立连接!---消息来自客户端");

			System.out.println(dis.readUTF());
			
		} catch (UnknownHostException e) {
			System.out.println("未知的主机异常: " + e);
			
		} catch (IOException e) {
			System.out.println("IO异常: " + e);
		} finally {
			try {
				if(!socket.isClosed()) 
					socket.close();
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
}

 

 附:网络编程的相关知识简单介绍:

     先来介绍下网络协议:
    TCP/IP
        Transmission Control Protocol 传输控制协议
        Internet Protocol 互联网协议
    UDP
        User Datagram Protocol 用户数据协议

连接协议:
    分为:
    面向连接协议: Connection Oriented Protocol
    非连接协议: Connectionless Protocol

    1).面向连接协议是指两台电脑在传输数据前,先会建立一个专属的连接。就如电信局的交换机会为打电话双方提供专属连接一样。
    Internet上的面向连接协议就是TCP/IP
    特点:确认回应;分组序号;流量控制。
    TCP/IP属于可靠性传输,适合不容许有传输错误的网络程序设计使用

    2).非连接协议:无专属连接,无分组,容错,距离短,可同时对多台电脑进行数据传输
    Internet上的非连接协议就是UDP

    TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。相比之下UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。


Socket 是程序与网络间的一种接口,大部分网络应用程序都是点对点的,所谓点就是服务器端和客户端所执行的程序。Socket是用来接收和传送分组的一个端点。

java的Socket编程要用到java.net包,最常用的是net包下的6个类:InetAddress(互联网协议 (IP) 地址)类,Socket(套接字)类,ServerSocket(套接字服务器)类,DatagramSocket(发送和接收数据报包的套接字)类,DatagramPacket(数据报包)类,MulticastSocket(多播数据报套接字类用于发送和接收 IP 多播包)类,其中InetAddress、Socket、ServerSocket类是属于TCP面向连接协议,DatagramSocket、DatagramPacket和MulticastSocket类则属于UDP非连接协议的传送类。

    

分享到:
评论

相关推荐

    java socket client-server

    总之,Java Socket编程是构建网络应用程序的关键技术,它使得两个远程程序能够相互通信。了解并掌握如何创建和管理Socket连接,以及如何有效地传输数据,对于任何希望涉足网络编程的Java开发者来说都是至关重要的。

    基于TCP协议网络socket编程-简单聊天机器人(java实现C/S通信)

    1、本项目则是使用Java实现TCP的Socket网络通信,包含C/S软件架构的程序设计,偏向实践,更加有趣! 2、实现简单有趣的“创意”聊天机器人。 3、建立通信规则: Server和Client之间需要约定相同的规则,保证正常通信...

    java socket编程

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

    socket编程 TCP client.java TCPserver.java

    总的来说,`TCP client.java`和`TCP server.java`是TCP Socket编程的基础,它们展示了如何在Java中实现客户端和服务器之间的通信。通过学习和理解这些基础,开发者可以构建更复杂的网络应用,如聊天程序、文件传输...

    Java源码:Socket编程.rar_java socket _java编程_socket java_socket编程 jav

    Java Socket编程是网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在Java中,Socket是基于TCP协议的,提供了一种可靠的、基于字节流的双向通信方式。本资料包含的"Java源码:Socket编程"是一个...

    基于Socket的Server和Client编程简单实现

    这个实例是Socket编程的基础,展示了如何通过Java实现两端的通信。随着需求的复杂化,例如加密通信(SSL/TLS)、数据格式转换(如JSON或XML)等,Socket编程会涉及更多的技术细节。不过,理解这个基本示例是深入学习...

    Java-network-programming-server.zip_java programming_java server

    综上所述,"Java-network-programming-server.zip"资料包涵盖了Java网络编程中的核心概念和技术,包括服务器端的搭建、客户端的通信、数据传输、安全性以及性能优化等方面。通过深入学习和实践,开发者可以掌握构建...

    java socket 编程文档

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

    java--ftp(server_client).rar_FTP CLIENT_FTP server client_ftp_ja

    在描述中提到的"FTP CLIENT"部分,可能包含Java代码实现了一个简单的FTP客户端,能够连接到服务器,发送文件上传或下载请求。 FTP服务器是接收客户端命令并执行相应操作的实体。"FTP server client"可能是指一个...

    Java socket编程实例.pdf

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

    三步学会Java_Socket编程

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

    Java Socket实例(Server+Client)

    Java Socket是Java网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在这个实例中,我们有两个关键组件:Server和Client,它们通过Socket进行交互。下面将详细解释Java Socket的工作原理、如何创建...

    socket-java-demo-good.rar_Follow_ Follow_easy socket

    总的来说,这个"socket-java-demo-good"项目提供了一个简单的Java Socket编程示例,适用于学习和实践TCP通信的基本原理和技巧。通过这个示例,你可以了解到如何创建服务器端和客户端,以及如何通过Socket进行数据...

    Java socket网络编程的基础示例

    在Java中,我们可以使用`java.net.Socket`类和`java.net.ServerSocket`类来实现TCP Socket编程。`ServerSocket`用于监听客户端的连接请求,`Socket`则代表一个客户端连接。以下是一个简单的TCP服务器端和客户端示例...

    android--simple-Server-and-Client.rar_Server_android_android cli

    - **Socket编程**:在Android中,服务器端通常使用Java的Socket类来创建TCP连接。通过ServerSocket实例监听特定端口,当客户端请求连接时,ServerSocket会生成一个Socket对象用于数据传输。 - **线程处理**:由于...

    01_Linux网络编程-网络基础-socket编程-高并发服务器1

    【网络编程基础与Socket编程】 网络编程是计算机通信的核心,涉及多层协议栈,以便不同设备间能够有效地交换数据。本文将重点介绍网络基础、协议概念以及常见的协议,并探讨网络应用程序设计模式,如C/S模式和B/S...

    Java面试之Socket编程

    总之,Java的Socket编程涉及网络通信的核心概念,包括TCP和UDP协议的理解,以及如何在Java中实现这两个协议的通信。理解和熟练掌握Socket编程对于开发网络应用程序至关重要。在面试中,候选人需要展示他们能有效处理...

    三步学会Java Socket编程

    本文将详细介绍如何分三步学习Java Socket编程,并提供一个简单的Server-Client模型的程序示例。 第一步:理解Socket基础 Socket在Java中是通过`java.net.Socket`和`java.net.ServerSocket`类来实现的。Socket提供...

    client-server-socket-using-java.rar_java programming_socket clie

    Java Socket编程是网络通信的核心部分,它允许两个网络应用程序通过TCP/IP协议进行数据交换。在Java中,Socket类和ServerSocket类提供了客户端-服务器模型的实现。本教程将深入探讨如何使用Java进行Socket编程。 ...

    Telnet-Server-Client.rar_Telnet Server Java_java socket telnet_

    本资源"Telnet-Server-Client.rar"包含了一个用Java实现的`Telnet`服务器和客户端,这对于理解网络编程和`Socket`通信具有很高的学习价值。 首先,我们要了解`Java`中的`Socket`编程。`Socket`是网络通信的基础,它...

Global site tag (gtag.js) - Google Analytics