TCP/IP以及Socket对象基本
1 OSI七层模型概念介绍
应用层 | FTP Telnet HTTP | SNMP DNS | |
传输层 | TCP | UDP | |
网络互联层 | IP | ||
主机-网络层 |
以太网:IEEE802.3 | ||
令牌环网:IEEE802.4 |
客户端代码
package com.asiaInfo.caozg.ch_01;import java.io.*; import java.net.Socket;/*** @Authgor: gosaint* @Description:* @Date Created in 21:31 2018/1/7* @Modified By:客户端代码*/ public class EchoClient {// 本机的IP地址private String host = "localhost";// 本机的端口号private int port = 8000;// socket 对象private Socket socket;// 构造器初始化Socket对象public EchoClient() throws IOException {socket = new Socket(host, port);}// 测试方法public static void main(String args[]) throws IOException {new EchoClient().talk();}private PrintWriter getWriter(Socket socket) throws IOException {OutputStream socketOut = socket.getOutputStream();return new PrintWriter(socketOut, true);}private BufferedReader getReader(Socket socket) throws IOException {InputStream socketIn = socket.getInputStream();return new BufferedReader(new InputStreamReader(socketIn));}public void talk() throws IOException {try {// 从socket读取数据BufferedReader br = getReader(socket);// 向socket写入数据PrintWriter pw = getWriter(socket);// 把控制台输入的数据转换为字符流,然后读取BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in));String msg = null;while ((msg = localReader.readLine()) != null) {// 将读取的数据写出的输出流(打印流) pw.println(msg);System.out.println(br.readLine());if (msg.equals("bye"))break;}} catch (IOException e) {e.printStackTrace();} finally {try {socket.close();} catch (IOException e) {e.printStackTrace();}}} }
服务端流程
package com.asiaInfo.caozg.ch_01;import java.io.*; import java.net.*;public class EchoServer {private int port = 8000;private ServerSocket serverSocket;public EchoServer() throws IOException {serverSocket = new ServerSocket(port);System.out.println("服务器启动");}public String echo(String msg) {return "echo:" + msg;}private PrintWriter getWriter(Socket socket) throws IOException {OutputStream socketOut = socket.getOutputStream();return new PrintWriter(socketOut, true);}private BufferedReader getReader(Socket socket) throws IOException {InputStream socketIn = socket.getInputStream();return new BufferedReader(new InputStreamReader(socketIn));}public void service() {while (true) {Socket socket = null;try {socket = serverSocket.accept(); //等待客户连接System.out.println("New connection accepted "+ socket.getInetAddress() + ":" + socket.getPort());// 从socket获取输入流字符,阅读消息BufferedReader br = getReader(socket);// 向socket写出数据PrintWriter pw = getWriter(socket);String msg = null;// 阅读消息while ((msg = br.readLine()) != null) {System.out.println(msg);// 写出消息 pw.println(echo(msg));if (msg.equals("bye")) //如果客户发送的消息为“bye”,就结束通信break;}} catch (IOException e) {e.printStackTrace();} finally {try {if (socket != null) socket.close(); //断开连接} catch (IOException e) {e.printStackTrace();}}}}public static void main(String args[]) throws IOException {new EchoServer().service();} }
public class PortScanner{public static void main(String[] args){private String host="localhost";//本机的IP地址new PortScanner().scan(host);}public void scan(String host){Socket s=null;try{for(int port=1;port<1024;port++){// 创建socket对象s=new Socket(host,port);System.out.println("该端口没有被占用:"+port);}}catch(IOException e){Systrm.out.println("该端口被占用:"+port);}finally{try{if(s!=null)s.close;}catch(Exception e){e.printStackTrance();}}} }
转载于:https://www.cnblogs.com/gosaint/p/8249909.html
TCP/IP以及Socket对象基本相关推荐
- TCP/IP、SOCKET、HTTP之间的联系与区别
主要内容: 1.网络的七层协议 2.TCP/IP.SOCKET.HTTP简介 3.TCP连接.HTTP连接.Socket连接的区别 一.网络的七层协议 网络七层由下往上分别为物理层.数据链路层.网络层 ...
- java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计
[JAVA 网络编程 TCP/IP.Socket 和协议设计] TCP/IP 协议简介 IP 首先我们看 IP(Internet Protocol)协议.IP 协议提供了主机和主机间的通信. 为了完成 ...
- TCP/IP,HTTP,Socket的区别与联系
TCP/IP,HTTP,Socket的区别与联系 网络七层:物数网传会表应.分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层.其中,底层三层:物理层,数据链路层,网络层是网络工程师研究 ...
- mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区...
MySQL客户端与服务端的TCP/IP及socket连接方式 客户端与服务器模型 客户端与服务端模型 TCP/IP方式连接 解释说明 TCP/IP套接字方式是MySQL在任何平台下都提供的连接方式,也 ...
- Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程
目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...
- 网络协议:TCP/IP、SOCKET、HTTP
网络七层 由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称 ...
- 通讯http,TCP/IP与socket之间的区别
1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在"无差别 ...
- TCP/IP 和 Socket 的关系
要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...
- http、tcp/ip、socket
TCP/IP参考模型 从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族.不同于ISO模型的七个分层,TCP/IP协议参考模型把所有的TCP/ ...
- 22-05-05 西安 javaSE(18) 网络编程、TCP\IP、Socket通信
MAC与IP地址 MAC地址 每一块网卡带有的ROM(只读存储器)中,都预先烧录了一个唯一的MAC地址. MAC地址=制造厂商编号+产品编号 所以世界上每一个MAC地址都是独一无二的 IP地址 在互联 ...
最新文章
- 全球最大“同性”交友网站GitHub或被微软收购,收购价可能高达 50 亿美元
- 囧囧西游之大闹天宫java_《囧囧西游之大闹天宫》攻略(1)
- KXMovie基于ffmpeg的播放器
- 生活大爆炸版石头剪刀布(洛谷-P1328)
- Kafka核心源码解析 - LogManager源码解析
- python 通信中间件_Python Web框架Sanic middleware – 中间件
- Android查看每个线程CPU占用情况,以及工作内容分析
- 2022年二级c语言软件下载,二级c语言免费考试软件下载 知识兔二级c语言考试系统 v2022.3官方安装版
- Android多媒体功能开发(7)——使用SoundPool类播放音频
- 局域网计算机名和ip扫描工具,局域网IP扫描器(Advanced IP Scanner)
- 计算机考研408难吗?学到什么程度才能考130?
- 还在为挖不到漏洞烦恼?还在为如何才能升职加薪困惑?听听徐老师怎么说.........
- Linux- 什么是PID?
- 修改Win10系统文件夹C:\Users\下用户名为中文方法
- dismiss和remove_Android对话框之dismiss和cancel和hide区别
- Variation Model
- 【渝粤教育】电大中专金融与税收 (2)作业 题库
- M1 MacBook使用IE浏览器解决兼容问题
- google glog介绍与使用
- 一个大学生从月薪3500到700万和他的情感经历
热门文章
- Android Studio真机调试,数据库sqllite时,Multiple dex files define Landroid/support/v4/R 问题...
- 解决:Unable to execute dex: GC overhead limit exceeded
- 建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期...
- golang格式化输出---fmt包用法详解
- Unity Lighting - Choosing a Color Space 选择色彩空间(四)
- Spring使用经验之Listener综述
- Laravel 5.1 文档攻略 —— Eloquent Collection
- “同样的”约束,不同的位置
- 图解DotNet框架之三:System.IO
- 处理模型——找到对应一个方向的旋转角