socket是基于TCP/IP协议的一种客户端与服务器端通信交流的一种重要的手段:
下面实现的是一个客户端,对服务器发送请求,客户端收到服务端的回复!
第一步:新建一个java Project 如下图所示:
第二步:服务器端的代码如下:
package com.socket.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * 服务器端 * * @author lfc 对于这个客户端以及服务端,运行的时候,必须先服务端开始运行起来,开始监听客户端的程序请求 * 现在传递的只是一个字符串 */ public class SocketServer { public static void main(String[] args) { System.out.println("服务器端准备好监听客户端的请求了。。。"); try { // 1:创建一个服务端的ServerScoket,绑定端口开始监听 ServerSocket serverScoket = new ServerSocket(8800); // 2:使用accept()方法阻塞等待连接,获得新的连接 Socket socket = serverScoket.accept(); // 3:获得输入流 InputStream is = socket.getInputStream(); // 包装下变成字符流 BufferedReader br = new BufferedReader(new InputStreamReader(is)); //创建输出流,用来给客户端提示的响应信息 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); // 4:读取用户输入的信息 String info = null; while (!((info = br.readLine()) == null)) { System.out.println("我是服务器打印出来的内容,客户端输入的内容是:\n" + info); } //给客户端的回应信息 String response="客户端已经收到你们的信息了,Success"; pw.write(response); pw.flush(); // 5:关闭资源,注意,关闭的时候,要从底部开始往上依次关闭,顺序不能错! os.close(); pw.close(); br.close(); is.close(); socket.close(); serverScoket.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println("本次服务端监听结束!。。。"); } }
第三步:编写服务器端的代码如下:
package com.socket.client; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; /** * 客户端 * * @author lfc * */ public class loginClient { public static void main(String[] args) throws UnknownHostException { try { // 1,创建serverScoket客户端,绑定服务器端的ip以及端口 Socket scoket = new Socket("localhost", 8800); // 2,得到scoket读写流 OutputStream os = scoket.getOutputStream(); // 获得输入流 InputStream is = scoket.getInputStream(); // 包装下变成字符流 BufferedReader br = new BufferedReader(new InputStreamReader(is)); // 3,利用一定的协议对scoket中的对读写操作 PrintWriter pw = new PrintWriter(os); String info = "用户名是:tom,密码是:123456 "; pw.write(info); pw.flush(); //需要先关闭,一定要记得先关闭 scoket.shutdownOutput(); //接收并显示收到服务器端返回的信息! String answer = null; while (!((answer = br.readLine()) == null)) { System.out.println("我是服务器端接收并且给返回的信息:\n" + answer); } // 4,关闭流 br.close(); is.close(); pw.close(); os.close(); scoket.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println("客户端请求完毕!"); } }
第四步:ctrl+f11运行服务端的代码,运行服务端的代码后如下:
第五步:运行客户端的代码 ctrl+f11 如下图:
第六步:我们再打开服务器端的控制台打印信息如下图所示:
备注:对于本次的代码,有一个比较大的缺点是,java是面向对象编程的,这里是一个字符串,不是一个对象,在socket编程中,实现面向对象编程,传递的是一个对象。
相关推荐
Socket实验,客户端和用户端点对点通信,Socket编程实验报告 - 实验报告 实验一 Socket 编程 一、实验目的 通过 socket 程序的编写、调试,掌握 socket 编程的基本方法,了解客户端与 服务器端
Socket编程是计算机网络通信中的重要概念,主要用于实现进程间的网络通信。在本示例中,我们探讨的是如何使用Socket进行程序间的交互。Socket可以被看作是两台计算机之间的通信端点,允许它们通过网络交换数据。下面...
**实验一: SOCKET编程实验** 在计算机网络领域,Socket编程是一种基本的通信方式,它允许两个应用程序通过网络进行数据交换。本实验旨在帮助学生深入理解SOCKET编程的概念、原理及其实现过程,以便于掌握网络通信...
C#raw Socket编程是一种高效、可靠、强大且广泛应用的网络编程技术,广泛应用于网络封包监视、网络流量控制、网络安全监控和网络协议分析等领域。但是,需要深入了解网络协议和套接字编程,掌握C#语言和Windows ...
Socket编程是网络编程的基础,主要用于实现两个网络节点之间的通信。在这个实验报告中,我们主要探讨了如何使用Java的Socket和ServerSocket类进行TCP协议的客户端和服务器端编程。 实验目标是掌握Socket编程的基本...
**网络编程1Socket编程**的学习涵盖了上述基础知识,还包括高级主题,如服务器的负载均衡、SSL/TLS加密通信、异步I/O模型(如epoll、kqueue)等。通过学习和实践,开发者能够创建复杂的网络应用程序,如Web服务器、...
"Android socket编程1"是一个入门级示例,旨在教授如何在Android平台上使用Socket进行网络通信。这个示例程序中,开发者使用了`InetAddress`类来处理IP地址和主机名的转换,这是网络通信的基础。 `InetAddress`是...
Socket编程是计算机网络通信中的重要概念,主要用于实现进程间的网络通信。在TCP/IP协议栈中,Socket接口提供了标准的应用程序接口API,使得开发者能够构建跨平台的网络应用程序。本篇将详细探讨Socket编程的核心...
"模块一_Socket编程.doc"可能是一个详细的讲解文档,涵盖了Socket编程的基础概念、API用法、网络模型(如TCP/IP)以及可能的编程实例。这份文档可能会引导读者了解如何创建Socket,进行连接,发送和接收数据,以及...
"基于TCP/IP的socket编程"是一个深入探讨如何使用socket接口进行网络通信的主题。Socket编程允许应用程序通过网络发送和接收数据,它是互联网上不同计算机之间交互的核心机制。 在给定的描述中,我们看到一个创新的...
《网络Socket编程指南》是一本深入探讨网络通信技术的书籍,尤其关注于Socket编程这一核心领域。Socket,作为网络通信的基础接口,是实现进程间、机器间通信的关键工具。本书旨在帮助开发者理解和掌握如何利用Socket...
通过《简明Socket编程指南》,我们可以看到Socket编程是构建网络应用程序不可或缺的一部分。无论是在Linux、DOS还是Windows平台上,掌握Socket编程的基础知识都是非常重要的。通过学习和实践这些指南中的例子,...
在VC(Visual C++)环境下进行网络编程时,基于TCP的socket编程是实现客户端与服务器之间通信的重要方式之一。本文将从初始化、创建socket、绑定地址、监听连接、接受连接、数据传输以及关闭socket等步骤,详细介绍...
Socket编程是Java语言中用于网络编程的主要技术之一。Socket是一种编程界面,用于实现客户方和服务方的连接。Socket通常用来实现客户机/服务器结构的通信。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket...
Socket编程是计算机网络编程中的重要组成部分,主要...总之,Socket编程是构建网络应用程序的基础,理解和掌握其原理和实践是每一位IT专业人员必备的技能。通过不断学习和实践,开发者可以构建出高效、可靠的网络应用。
【华中科技大学计算机学院socket编程实验源代码】是针对计算机网络通信的一个实践项目,主要涉及的是客户端(client)和服务端(server)之间的交互,通过局域网实现多种功能,包括用户注册、登录、密码找回、在线及...
Socket编程是计算机网络通信的核心技术之一,特别是在Windows环境下,如VC++6.0这样的开发工具中,它提供了强大的网络通信功能。本教程汇集了多个关于VC++6.0中Socket编程的学习资源,包括文档和演示文稿,旨在帮助...
总之,这个C#的Socket编程实例展示了如何构建一个简单的聊天应用程序,涉及了Socket的基本操作,包括连接、监听、发送和接收数据。通过理解和实践这个示例,开发者可以深入理解网络编程的基础,并为开发更复杂的网络...
在Socket编程中,首先需要创建一个Socket对象,然后指定其使用的协议类型(如TCP)。接下来,服务器端会绑定一个特定的IP地址和端口号,监听客户端的连接请求。当客户端发起连接请求时,服务器端接受连接,从而创建...