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编程是构建网络应用程序的关键技术,它使得两个远程程序能够相互通信。了解并掌握如何创建和管理Socket连接,以及如何有效地传输数据,对于任何希望涉足网络编程的Java开发者来说都是至关重要的。
1、本项目则是使用Java实现TCP的Socket网络通信,包含C/S软件架构的程序设计,偏向实践,更加有趣! 2、实现简单有趣的“创意”聊天机器人。 3、建立通信规则: Server和Client之间需要约定相同的规则,保证正常通信...
Java Socket编程是Java平台中用于实现网络通信的核心API,它基于TCP/IP协议栈,提供了低级别的、面向连接的、可靠的字节流通信。在本文中,我们将深入探讨Java Socket编程的关键概念、工作原理以及如何创建服务端和...
总的来说,`TCP client.java`和`TCP server.java`是TCP Socket编程的基础,它们展示了如何在Java中实现客户端和服务器之间的通信。通过学习和理解这些基础,开发者可以构建更复杂的网络应用,如聊天程序、文件传输...
Java Socket编程是网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在Java中,Socket是基于TCP协议的,提供了一种可靠的、基于字节流的双向通信方式。本资料包含的"Java源码:Socket编程"是一个...
这个实例是Socket编程的基础,展示了如何通过Java实现两端的通信。随着需求的复杂化,例如加密通信(SSL/TLS)、数据格式转换(如JSON或XML)等,Socket编程会涉及更多的技术细节。不过,理解这个基本示例是深入学习...
综上所述,"Java-network-programming-server.zip"资料包涵盖了Java网络编程中的核心概念和技术,包括服务器端的搭建、客户端的通信、数据传输、安全性以及性能优化等方面。通过深入学习和实践,开发者可以掌握构建...
本文将深入探讨Java Socket编程的基础知识、关键概念以及如何在实践中应用。 一、Socket概述 Socket,也被称为套接字,是网络通信的端点,可以理解为两个应用程序之间的连接通道。在Java中,Socket类(java.net....
在描述中提到的"FTP CLIENT"部分,可能包含Java代码实现了一个简单的FTP客户端,能够连接到服务器,发送文件上传或下载请求。 FTP服务器是接收客户端命令并执行相应操作的实体。"FTP server client"可能是指一个...
本文将通过一个具体的Java Socket编程实例来深入探讨如何使用Java实现客户端与服务端之间的通信。 #### 二、基础知识概述 在开始具体实例之前,我们需要了解一些基本概念: - **Socket**:Socket是一种用于在网络...
在Java中,Socket编程是实现网络通信的基础,它提供了进程间通信的能力,使得两个相隔万里的计算机可以通过互联网进行数据交换。本篇文章将深入讲解如何通过三步学习Java Socket编程。 **第一步:理解Socket** ...
Java Socket是Java网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在这个实例中,我们有两个关键组件:Server和Client,它们通过Socket进行交互。下面将详细解释Java Socket的工作原理、如何创建...
总的来说,这个"socket-java-demo-good"项目提供了一个简单的Java Socket编程示例,适用于学习和实践TCP通信的基本原理和技巧。通过这个示例,你可以了解到如何创建服务器端和客户端,以及如何通过Socket进行数据...
在Java中,我们可以使用`java.net.Socket`类和`java.net.ServerSocket`类来实现TCP Socket编程。`ServerSocket`用于监听客户端的连接请求,`Socket`则代表一个客户端连接。以下是一个简单的TCP服务器端和客户端示例...
- **Socket编程**:在Android中,服务器端通常使用Java的Socket类来创建TCP连接。通过ServerSocket实例监听特定端口,当客户端请求连接时,ServerSocket会生成一个Socket对象用于数据传输。 - **线程处理**:由于...
【网络编程基础与Socket编程】 网络编程是计算机通信的核心,涉及多层协议栈,以便不同设备间能够有效地交换数据。本文将重点介绍网络基础、协议概念以及常见的协议,并探讨网络应用程序设计模式,如C/S模式和B/S...
总之,Java的Socket编程涉及网络通信的核心概念,包括TCP和UDP协议的理解,以及如何在Java中实现这两个协议的通信。理解和熟练掌握Socket编程对于开发网络应用程序至关重要。在面试中,候选人需要展示他们能有效处理...
本文将详细介绍如何分三步学习Java Socket编程,并提供一个简单的Server-Client模型的程序示例。 第一步:理解Socket基础 Socket在Java中是通过`java.net.Socket`和`java.net.ServerSocket`类来实现的。Socket提供...
Java Socket编程是网络通信的核心部分,它允许两个网络应用程序通过TCP/IP协议进行数据交换。在Java中,Socket类和ServerSocket类提供了客户端-服务器模型的实现。本教程将深入探讨如何使用Java进行Socket编程。 ...
本资源"Telnet-Server-Client.rar"包含了一个用Java实现的`Telnet`服务器和客户端,这对于理解网络编程和`Socket`通信具有很高的学习价值。 首先,我们要了解`Java`中的`Socket`编程。`Socket`是网络通信的基础,它...