`
lfc_jack
  • 浏览: 144897 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

socket编程一

阅读更多

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编程中,实现面向对象编程,传递的是一个对象。

 

 

  • 大小: 3.2 KB
  • 大小: 24.2 KB
  • 大小: 25.7 KB
  • 大小: 28.5 KB
分享到:
评论

相关推荐

    实验一 Socket 编程 一、实验目的 套接字实验

    Socket实验,客户端和用户端点对点通信,Socket编程实验报告 - 实验报告 实验一 Socket 编程 一、实验目的 通过 socket 程序的编写、调试,掌握 socket 编程的基本方法,了解客户端与 服务器端

    Socket编程例子

    Socket编程是计算机网络通信中的重要概念,主要用于实现进程间的网络通信。在本示例中,我们探讨的是如何使用Socket进行程序间的交互。Socket可以被看作是两台计算机之间的通信端点,允许它们通过网络交换数据。下面...

    实验一_SOCKET编程实验

    **实验一: SOCKET编程实验** 在计算机网络领域,Socket编程是一种基本的通信方式,它允许两个应用程序通过网络进行数据交换。本实验旨在帮助学生深入理解SOCKET编程的概念、原理及其实现过程,以便于掌握网络通信...

    C#raw Socket编程

    C#raw Socket编程是一种高效、可靠、强大且广泛应用的网络编程技术,广泛应用于网络封包监视、网络流量控制、网络安全监控和网络协议分析等领域。但是,需要深入了解网络协议和套接字编程,掌握C#语言和Windows ...

    Socket编程实验报告.docx

    Socket编程是网络编程的基础,主要用于实现两个网络节点之间的通信。在这个实验报告中,我们主要探讨了如何使用Java的Socket和ServerSocket类进行TCP协议的客户端和服务器端编程。 实验目标是掌握Socket编程的基本...

    网络编程1Socket编程

    **网络编程1Socket编程**的学习涵盖了上述基础知识,还包括高级主题,如服务器的负载均衡、SSL/TLS加密通信、异步I/O模型(如epoll、kqueue)等。通过学习和实践,开发者能够创建复杂的网络应用程序,如Web服务器、...

    Android socket编程1

    "Android socket编程1"是一个入门级示例,旨在教授如何在Android平台上使用Socket进行网络通信。这个示例程序中,开发者使用了`InetAddress`类来处理IP地址和主机名的转换,这是网络通信的基础。 `InetAddress`是...

    socket编程 socket编程

    Socket编程是计算机网络通信中的重要概念,主要用于实现进程间的网络通信。在TCP/IP协议栈中,Socket接口提供了标准的应用程序接口API,使得开发者能够构建跨平台的网络应用程序。本篇将详细探讨Socket编程的核心...

    华中科技大学-计算机通信与网络(Socket编程)-内含源文件和说明书.zip

    "模块一_Socket编程.doc"可能是一个详细的讲解文档,涵盖了Socket编程的基础概念、API用法、网络模型(如TCP/IP)以及可能的编程实例。这份文档可能会引导读者了解如何创建Socket,进行连接,发送和接收数据,以及...

    基于TCP/IP的socket编程

    "基于TCP/IP的socket编程"是一个深入探讨如何使用socket接口进行网络通信的主题。Socket编程允许应用程序通过网络发送和接收数据,它是互联网上不同计算机之间交互的核心机制。 在给定的描述中,我们看到一个创新的...

    网络socket 编程指南

    《网络Socket编程指南》是一本深入探讨网络通信技术的书籍,尤其关注于Socket编程这一核心领域。Socket,作为网络通信的基础接口,是实现进程间、机器间通信的关键工具。本书旨在帮助开发者理解和掌握如何利用Socket...

    简明Socket编程指南

    通过《简明Socket编程指南》,我们可以看到Socket编程是构建网络应用程序不可或缺的一部分。无论是在Linux、DOS还是Windows平台上,掌握Socket编程的基础知识都是非常重要的。通过学习和实践这些指南中的例子,...

    VC学习笔记-基于TCP的socket编程

    在VC(Visual C++)环境下进行网络编程时,基于TCP的socket编程是实现客户端与服务器之间通信的重要方式之一。本文将从初始化、创建socket、绑定地址、监听连接、接受连接、数据传输以及关闭socket等步骤,详细介绍...

    总结java_socket编程.doc

    Socket编程是Java语言中用于网络编程的主要技术之一。Socket是一种编程界面,用于实现客户方和服务方的连接。Socket通常用来实现客户机/服务器结构的通信。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket...

    socket编程文档

    Socket编程是计算机网络编程中的重要组成部分,主要...总之,Socket编程是构建网络应用程序的基础,理解和掌握其原理和实践是每一位IT专业人员必备的技能。通过不断学习和实践,开发者可以构建出高效、可靠的网络应用。

    华中科技大学计算机学院socket编程实验源代码

    【华中科技大学计算机学院socket编程实验源代码】是针对计算机网络通信的一个实践项目,主要涉及的是客户端(client)和服务端(server)之间的交互,通过局域网实现多种功能,包括用户注册、登录、密码找回、在线及...

    VC++6.0中socket编程学习教程汇集

    Socket编程是计算机网络通信的核心技术之一,特别是在Windows环境下,如VC++6.0这样的开发工具中,它提供了强大的网络通信功能。本教程汇集了多个关于VC++6.0中Socket编程的学习资源,包括文档和演示文稿,旨在帮助...

    Socket编程实例

    总之,这个C#的Socket编程实例展示了如何构建一个简单的聊天应用程序,涉及了Socket的基本操作,包括连接、监听、发送和接收数据。通过理解和实践这个示例,开发者可以深入理解网络编程的基础,并为开发更复杂的网络...

    Socket编程概述 ppt

    在Socket编程中,首先需要创建一个Socket对象,然后指定其使用的协议类型(如TCP)。接下来,服务器端会绑定一个特定的IP地址和端口号,监听客户端的连接请求。当客户端发起连接请求时,服务器端接受连接,从而创建...

Global site tag (gtag.js) - Google Analytics