`
java-_-ted
  • 浏览: 12902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

初识Socket

阅读更多
客户端:
package Socket_Test;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class LoginClient {
	public static void main(String[] args) throws Exception {

		// 建立客户端Socket连接,指定服务器的位置以及端口
		Socket socket = new Socket("localhost", 8800);
		// 得到Socket读写流
		OutputStream os = socket.getOutputStream();
		PrintWriter pw = new PrintWriter(os);
		// 输入流
		InputStream is = socket.getInputStream();
		BufferedReader br = new BufferedReader(new InputStreamReader(is));
		// 利用流按照一定的的协议对Socket进行读/写操作
		String info = "用户名:Tom/用户密码:123456";
		pw.write(info);
		pw.flush(); // 刷新
		socket.shutdownOutput();
		// 接受服务器的响应并打印显示
		String reply = null;
		while (!((reply = br.readLine()) == null)) {
			System.out.println("我是客户端,服务器的响应为:" + reply);
		}
		// 关闭资源
		br.close();
		is.close();
		pw.close();
		os.close();
		socket.close();
	}
}


服务器:
package Socket_Test;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class LoginServer {

	public static void main(String[] args) throws Exception {
		// 创建一个ServerSocket对象
		ServerSocket serverSocket = new ServerSocket(8800);
		// 使用accept()方法阻塞等待监听,获得新的连接
		Socket socket = serverSocket.accept();
		// 获得输入流
		InputStream is = socket.getInputStream();
		BufferedReader br = new BufferedReader(new InputStreamReader(is));
		// 获得输出流
		OutputStream os = socket.getOutputStream();
		PrintWriter pw = new PrintWriter(os);
		// 读取用户输入信息
		String info = null;
		while (!((info = br.readLine()) == null)) {
			System.out.println("我是服务器,用户信息为:" + info);
		}
		// 给客户端一个响应
		String reply = "welcome!";
		pw.write(reply);
		pw.flush(); // 刷新
		// 关闭资源
		os.close();
		br.close();
		is.close();
		socket.close();
		serverSocket.close();
	}
}
0
0
分享到:
评论

相关推荐

    精选_【Cocos Creator 联机实战教程(1)】——初识Socket.io_源码打包

    【Cocos Creator 联机实战教程(1)】——初识Socket.io 是一个针对游戏开发者,特别是使用Cocos Creator的开发者的系列教程。本教程旨在帮助他们掌握如何利用Socket.io实现在Cocos Creator游戏中的实时通信功能,这...

    C# Socket编程(4)初识Socket和数据流

    在C#编程中,Socket是用于网络通信的核心组件,它提供了底层的网络接口,允许开发者创建TCP或UDP通信的应用程序。Socket编程主要涉及到网络编程的基本概念,如连接、数据传输和套接字类型。 1. Socket的类型 Socket...

    初识通信——多线程服务器的建立

    总结来说,初识通信并建立多线程服务器需要理解网络编程的基本概念,掌握`ServerSocket`和`Socket`的使用,以及线程的管理。在实现过程中,合理使用如`StringBuffer`这样的线程安全类,能有效提升程序的性能和稳定性...

    初识C#及其开发环境

    5. 网络编程:了解Socket通信和HTTP请求等网络编程基础知识。 6. Windows Forms:通过Windows Forms创建简单的桌面应用程序,学习控件使用和事件处理。 7. ASP.NET Web开发:初步接触Web开发,学习ASP.NET MVC或ASP...

    ZMQ专题学习之一:初识ZeroMQ

    ZMQ专题学习之一:初识ZeroMQ  ZeroMQ号称是“史上最快的消息队列”,基于c语言开发的。引用官方说明定义:“ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程...

    python笔记,包含从基础语法、socket编程、异步编程、爬虫、ai等

    这篇笔记涵盖了Python编程的多个重要方面,旨在帮助学习者从初识到深入理解Python的各种技术。 首先,02_python目录下的内容可能包括Python的基础语法,如变量、数据类型(如整型、浮点型、字符串、列表、元组、...

    linux01-初识

    【初识Linux】 Linux是一种免费使用且开源的操作系统内核,它是GNU/Linux操作系统的基础,广泛应用于服务器、桌面环境以及各种嵌入式设备中。Linux以其稳定性、安全性、灵活性和跨平台性著称,是软件开发领域的重要...

    Node.js Web开发实战-(共14章)PPT.rar

    第1章 初识 Node.js.ppt 第2章 Javascript基础.ppt 第3章 Node.js基础入门.ppt 第4章 异步编程与包管理.ppt 第5章 http模块.ppt 第6章 Web开发中的模板引擎.ppt 第7章 Node.js中的文件操作.ppt 第8章 认识express...

    python–数据库 00 初识数据库和SQL

    socket编程中,客户端从服务端下载一个文件,这个文件应该存在哪? 做 一个登陆过程,用户的用户名和密码放在哪? 数据(文件 图片 视频等)的存储以及管理怎样能够操作简单? 因此,我们发现:  第一,将文件和...

    DIY电脑技术培训手册

    AMD处理器的常见插座有Socket 462、Socket 939和Socket 754,Intel处理器则有LGA 775和Socket 478。CPU插槽与处理器的针脚数必须匹配,否则无法安装。CPU插槽中的感温器件用于监控CPU温度,防止过热。 1.1.1.2 内存...

    基于javatcpsocket通信的拆包和装包源码-netty-source:Netty源码+练习

    socket通信的拆包和装包源码 个人笔记整理 - Shadow Chapter01 - Netty简单使用 1.初识 Netty 服务端编码 /** * @author shadow * @create 2020-09-28 * @description * * HTTP 服务器 * * 测试:curl ...

    Go 语言课程和项目源码

    初识Go语言 开发环境搭建 第一个程序 基础语法 基础类型 变量常量与值 变量作用域 运算符 作业 Day02 MODULES工程 格式化输出 条件语句 读取标准输入 循环语句 数据类型转换 Go语言指针 作业 Day03 Go语言函数 defer...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    模块初识 pyc是什么 python数据类型 bytes数据类型 列表的使用 元组与购物车程序练习 购物车程序练习实例 字符串常用操作 字典的使用 三级菜单实例 本周作业-购物车优化 第3周 作业 上节内容回顾 集合及其运算 ...

    BeginningLinuxProgramming

    Linux提供了socket接口,使得开发者可以创建网络应用程序,实现TCP/IP通信。你将学习如何创建服务器和客户端,处理套接字连接,发送和接收数据。 此外,书中还会介绍一些常见的Linux库,如GLibC(GNU C库)和POSIX...

    FreeSWITCH VoIP 实战

    第二章 初识 FreeSWITCH 第三章 PSTN 与 PBX 服务 第四章 SIP 协议 第五章 FreeSWITCH 架构 第六章 运 行 FreeSWITCH 第七章 SIP 模块 - mod_sofia 第八章 拨 号计划 - Dialplan 模块介绍 嵌入式...

    Beginning Linux Programming, 4th Edition

    《初识Linux编程》第四版是一本针对Linux系统编程初学者的经典教材,旨在帮助读者深入理解Linux环境下的程序设计和开发。这本书详细介绍了Linux操作系统的基础,以及如何在该平台上进行有效的编程工作。以下是对该书...

    Beginning Linux Programming(3th)

    书中介绍了TCP/IP协议栈的基本原理,讲解了如何使用socket()函数创建套接字,bind()和listen()用于服务器端绑定和监听,accept()接收连接请求,以及connect()和send()、recv()用于客户端发送和接收数据。此外,还...

    Beginning Linux Programming

    6. **网络编程**:介绍套接字编程,包括TCP/IP协议、客户端/服务器模型,如何使用socket API创建网络应用程序。 7. **设备驱动编程**:讲解Linux设备驱动的基本原理,如何与硬件交互,以及字符设备、块设备驱动的...

Global site tag (gtag.js) - Google Analytics