`
java-_-ted
  • 浏览: 12189 次
  • 性别: 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
分享到:
评论

相关推荐

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

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

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

    【Cocos Creator 联机实战教程(1)】——初识Socket.io

    ZMQ专题学习之一:初识ZeroMQ

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

    WEBRTC运行流程.pptx

    对于官方文档自己的理解 ... 初识JS https://developer.mozilla.org/zh-CN/docs/Web/API/WebRTC_API/Signaling_and_video_calling WEBRTC概念(开源SOCKET.io创建一个信令系统) 视频会议=WEBRTC+SOCKET.IO ...

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

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

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

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

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

    FreeSWITCH VoIP 实战

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

    Android手机交互应用开发创意之钥 源代码

     11.2 socket通信  11.3 android与javaschpt交互  第2章 goog-emap与gps  12.1 初认识google map api  12.2 申请googlemapankey  12.3 一个简单的地图实例  12.4 初识gps  12.5 一个简单的gps实例 第3篇 ...

    go开发实战.doc

    1. 初识Go语言 1 1.1 Go语言介绍 1 1.1.1 Go语言是什么 1 1.1.2 Go语言优势 1 1.1.3 Go适合用来做什么 2 1.2 环境搭建 2 1.2.1 安装和设置 2 1.2.2 标准命令概述 2 1.2.3 学习资料 3 1.3 第一个Go程序 3 ...

    达达房卡麻将二次开发VIP系统学习课程.zip

    第002课麒麟棋牌_达达麻将的底层通讯express框架与socket.io 【录播】麒麟棋牌_达达麻将的底层通讯express(105分钟) 37 第003课麒麟棋牌_达达麻将开房间流程 【录播】第003课麒麟棋牌_达达麻将开房间流程(98...

    Android 3D游戏开发技术宝典-OpenGL ES 2.0 (吴亚峰) 源代码

    3.1.2 初识opengl es 2.0应用程序 80 3.2 着色器与渲染管线 89 3.2.1 opengl es 1.x的渲染管线 89 3.2.2 opengl es 2.0的渲染管线 94 3.2.3 opengl es中立体物体的构建 97 3.3 主流android手机gpu大...

    python入门到高级全栈工程师培训 第3期 附课件代码

    07 初识linux命令 08 linux操作系统目录结构 09 目录及文件操作 第4章 01 上节课复习 02 创建用户相关的文件 03 用户增删该查及组相关操作 04 对文件的权限管理 05 对目录的权限管理 06 权限管理补充 07 属主属组...

    [游戏开发] 达达房卡麻将二次开发VIP系统学习课程 [MP4] (16.66G)

    第002课麒麟棋牌_达达麻将的底层通讯express框架与socket.io.rar 第003课麒麟棋牌_达达麻将开房间流程.rar 第004课达达麻将客户端初始化流程.rar- B% H! q% ]( _+ s8 |. B 第005课达达麻将开房间.rar 第006课...

    Android入门到精通源代码.

    第1章 初识Android 1.1 什么是Android 1.1.1 移动信息设备分类 1.1.2 Open Handset Alliance和 Android 1.2 Android简介 1.2.1 Andriod的历史 1.2.2 Andriod的未来 1.2.3 Andriod平台的技术架构 1.3 Android应用程序...

Global site tag (gtag.js) - Google Analytics