关键词:
一.Socket
?两个Java应用程产可通过一个双向的网络通信连接实现数据文换,这个及向链路的一端称
为个Socket。
Socket通常用来实现client-server(网络释义:主从式架构)连接。
?java. net包中定义的两个类Socket和Serversopket(TCP服务器端的插座socket), 分别用来实现双向连接的
cljent和server
建立连接时所需的寻址信息为远程计算机的IP地址和端口号[区分不同的应用程序](Port number)
补充:①端口号2字节,最多有65536个端口,一个应用程序可以占用多个端口②端口分两种:UDP端口和TCP端口,每一种都是65536个端口,它们是分开的
二.程序实例
首先是服务器端
1 import java.io.DataInputStream; 2 import java.net.*; 3 /** 4 * 一.public class ServerSocket extends Object implements Closeable 5 * 这个类实现了服务器套接字。服务器套接字等待通过网络进入的请求。 6 * 它根据该请求执行一些操作,然后可能将结果返回给请求者。 7 * 综上所诉:ServerSocket类为阻塞式的类型 8 * 9 * 二.public Socket accept()throws IOException 10 * 侦听要连接到此套接字并接受它。 该方法将阻塞直到建立连接。 11 */ 12 public class TCPserver 13 public static void main(String[] args) throws Exception 14 //等待客户端连接,告知serversocket服务器端在6666端口进行监听 15 ServerSocket ss=new ServerSocket(6666); 16 while(true) //接收多个客户端连接 17 //接受客户端连接 18 Socket s=ss.accept(); 19 //客户端接收到数据流 20 DataInputStream dis=new DataInputStream(s.getInputStream()); 21 //打印 22 System.out.println(dis.readUTF()); 23 //关闭流和服务器端口 24 dis.close(); s.close(); 25 26 27
其次是客户端
1 import java.io.DataOutputStream; 2 import java.io.OutputStream; 3 /** 4 * public class Socket extends Object implements Closeable 5 * 该类实现客户端套接字(也称为“套接字”)。 6 * 套接字是两台机器之间通讯的端点。 7 * 8 * 构造方法public Socket(String host,int port)throws UnknownHostException, 9 * IOException创建流套接字并将其连接到指定主机上的指定端口号。 10 */ 11 import java.net.*; 12 public class Client 13 public static void main(String[] args) throws Exception 14 //客户端申请连接 15 Socket sc=new Socket("127.0.0.1", 6666); 16 //客户端通过流开始对话 17 OutputStream os = sc.getOutputStream(); 18 //包装管道,以UTF-8的形式输出 19 DataOutputStream dos=new DataOutputStream(os); 20 dos.writeUTF("莫西莫西,我是巫妖果子"); 21 //关闭流和客户端 22 dos.close(); sc.close(); 23 24
温馨小提示:①程序启动时先启动server端(监听),再启动client端②程序原理图,包括数据流都是通过插座socket进行传输(后续待补充)
网络编程(代码片段)
目录网络编程一、OSI七层协议1.OSI七层协议之物理链接层2.OSI七层协议之数据链路层3.OSI七层协议之网络层4.OSI七层协议之传输层5.OSI七层协议之会话层6.OSI七层协议之表示层7.OSI七层协议之应用层二、socket模块三、并发编程理论1.... 查看详情
markdown锈编程之道笔记(代码片段)
statethreads之网络架构库(代码片段)
原文:StateThreadsforInternetApplications介绍StateThreadsisanapplicationlibrarywhichprovidesafoundationforwritingfastandhighlyscalableInternetApplicationsonUNIX-likeplatforms.Itcombinesthesimplicityofthemu 查看详情
初识恶意代码之------网络蠕虫(代码片段)
网络蠕虫这种恶意程序的特性是通过网络或者系统漏洞进行传播,很大部分的网络蠕虫都有向外发送带毒邮件、阻塞网络的特性。几个著名的蠕虫:蠕虫名称所利用的具体漏洞爆发时间SlammerMS02-0392003.1.25BlasterMS03-0262003.7.11SasserMS0... 查看详情
网络编程之select(代码片段)
一select函数简介 select一般用在socket网络编程中,在网络编程的过程中,经常会遇到许多阻塞的函数,网络编程时使用的recv,recvfrom、connect函数都是阻塞的函数,当函数不能成功执行的时候,程序就会一直阻塞在这里,无法执... 查看详情
网络编程之黏包(代码片段)
黏包现象基于tcp协议实现的黏包fromsocketimport*importsubprocessip_port=(‘127.0.0.1‘,8888)BUFSIZE=1024tcp_socket_server=socket(AF_INET,SOCK_STREAM)tcp_socket_server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)tcp_socket_se 查看详情
网络编程之urllib模块(代码片段)
首先urlib并不是一个很好用的方法,这里仅作简单介绍。一般我们用requests方法来代替urlib方法。1.get请求1fromurllibimportrequest2url=‘http://www.baidu.com‘3req=request.urlopen(url)#打开一个url,发送get请求4content=req.read().decode()#读取源代码5fw=o... 查看详情
winsocket编程之域名解析(代码片段)
...析0.前置知识a.hostnetb.gethostname()c.gethostbyname()1.实现流程2.代码Winsocket编程之域名解析0.前置知识a.hostnethostent是hostentry的缩写,该结构记录主机的信息,包括主机名、别名、地址类型、地址长度和地址列表。之所以主机的地... 查看详情
tensorflow之编程模式(代码片段)
主要编程模式有:(1)命令式编程 —— Torch(2)符号式编程 —— TensorFlow 命令式编程:易理解,命令语句基本没优化:C,Java,C++,Python 符号式编程:涉及较多的嵌入和优化,运行速度有同比提升例如:1impo... 查看详情
unity之使用unitywebrequest获取网络时间(代码片段)
Unity之使用UnityWebRequest获取网络时间实现代码实现代码代码注释比较完整就不过多赘述了,直接将代码复制到工程中使用即可。usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.Networking;publicclass 查看详情
结对编程之队友代码分析(代码片段)
优点:JavaGUI界面:界面简约,操作简单,实用性强 2.独特的解题思想(上代码)//生成对应年级的题目 publicStringgetSubject(inttype) Randomrand=newRandom(); intNum,NumOpe;   查看详情
springboot编程之全局异常捕获(代码片段)
springboot编程之全局异常捕获 1、创建GlobalExceptionHandler.java,在类上注解@ControllerAdvice,在方法上注解@ExceptionHandler(value=Exception.class),Exception.class表示拦截所有的异常信息 packagecom.imooc.web.controller;importcom 查看详情
提升--04---并发编程之---有序性(代码片段)
并发编程之有序性经典案例1:importjava.util.concurrent.CountDownLatch;publicclassT01_Disorderprivatestaticintx=0,y=0;privatestaticinta=0,b=0;publicstaticvoidmain(String[]args)throwsInterruptedExcep 查看详情
dart异步编程之future(代码片段)
...步编程:FuturesDart是一个单线程编程语言。如果任何代码阻塞线程执行都会导致程序卡死。异步编程防止出现阻塞操作。Dart使用Future对象表示异步操作。介绍如下代码可能导致程序卡死//SynchronouscodeprintDailyNewsDige 查看详情
并发编程之io模型(代码片段)
Python并发编程之IO模型 目录: 一、IO模型介绍 二、阻塞IO (blockingIO) 三、非阻塞IO (nonblockingIO) 四、多路复用IO (IOmultiplexing) 五、异步IO(asynchronousIO) 六、IO模型比较分析 七、selsectors模块 ... 查看详情
网络编程基础之粘包现象(代码片段)
一、粘包现象原理分析 1、我们先来看几行代码,从现象来分析: 测试程序分为两部分,分别是服务端和客户端 服务端.py 1#!/usr/bin/envpython32#-*-coding:utf-8-*-3#writebycongcong456importsocket78server=socket.socket(family=sock... 查看详情
python进阶之网络编程(代码片段)
...通信使用网络的目的把多方链接在一起,进行数据传递;网络编程就是,让不同电脑上的软件进行数据传递,即进程间通信;ip地址ip地址概念和作用IP地址是什么:比如192.168.1.1这样的一些数字;ip地址的作用:用来在电脑中标... 查看详情
编程规范之书写规范(代码片段)
目录编程规范之书写规范1.每个缩进层级使用4个空格2.每行最多79个字符3.顶层函数或类的定义之间空两行4.采用UTF-8编码文件(通用编码格式)5.每行只使用import导入一个模块(分组标准库、三方库和本地库)6.在小括号、中括号... 查看详情