javasocket编程(代码片段)

浴盆 浴盆     2023-02-20     621

关键词:

Socket概念

tcp协议全称是Transmission Control Protocol,传输控制协议,是以字节流的方式发送数据的协议。ip全称为Internet Protocol互联网协议,tcp/ip协议在四层模型中的传输层。http、ftp、telnet(ssh)远程登录服务为应用层协议,是应用层感知和选择的协议。
IP地址+端口号组成了socket的逻辑概念,socket是tcp/ip的基础。

InetAddress类

InetAddress没有构造方法,无法通过new来构造对象,这个类在静态方法中直接返回了InetAddress类的实例。

getLocalHost   获取本地主机的InetAddress类实例
获取InetAddress类实例后可以通过getHostAddress返回IP地址字符串
可以通过主机名、IP地址等来获取相应的InetAddress类实例(host主机名唯一标识一台机器)

URL类

	URL url = new Url("https://www.taobao.com");
	URL newUrl = new Url(url, "/index.html");
	// 可以通过实例的方法获取信息
	url.getProtocol();
	url.getHost();

可以通过openStream方法发起网络调用

	URL url = new Url("https://www.taobao.com");
	// 通过url的openStream方法获取字节输入流(TCP以字节流的形式发送数据)
	InputStream is = url.openStream();
	// 将字节输入流转换为字符(一个字符占多个字节)输入流,指定字符集编码
	InputStreamReader isr = new InputStreamReader(is, "utf-8");
	// 为字符输入流提供缓冲
	BufferedReader br = new BufferedReader(isr);
	String data = br.readLine();
	br.close();

基于TCP的socket通信模型

首先server端建立SeverSocket对某个端口进行监听,然后client建立socket发送请求,server端收到请求建立连接,通过InputStream和outputStream进行通信。完成通信之后关闭socket和相关资源,结束通信。
服务器端步骤:

	// 创建服务器端socket实例
	ServerSocket serverSocket = new ServerSocket(8080);
	// 使用accept方法开始监听,一旦监听到请求会返回socket实例
	Socket socket = serverSocket.accept();
	// 获取输入流,其他过程同上
	InputStream is = socket.getInputStream();

客户端步骤:

    // 指定服务器地址和端口号,本机的话指定localhost或者127.0.0.1
	Socket socket = new Socket("127.0.0.1", 8080);
	// 获取输出流,向服务器端发送信息
	OutputStream os = socket.getOutputStream();
	PrintWriter pw = new PrintWriter(os);
	pw.write("admin: yupen");
	// ...省略其他步骤

相同地,服务端也可以通过输出流向客户端发送信息

服务器端响应多客户端

可以通过多线程来解决这个问题

 	while(true) 
 	    // 只有监听到才会继续往下执行
 		socket = serverSocket.accept();
 		// 创建一个线程进行处理 ...
 	

小白看完都会了!javasocket编程聊天室(代码片段)

二、Spring生命周期的大胆猜测这里分享一个阅读源码的小技巧:捉大放小,连蒙带猜!8字真言,我们在阅读源码过程中,因为你要知道,每一个被开源出来的优秀框架,其源码的体系都是极其庞大复杂... 查看详情

javasocket编程(代码片段)

Socket概念tcp协议全称是TransmissionControlProtocol,传输控制协议,是以字节流的方式发送数据的协议。ip全称为InternetProtocol互联网协议,tcp/ip协议在四层模型中的传输层。http、ftp、telnet(ssh)远程登录服务为应用层协议࿰... 查看详情

使用javasocket手撸一个http服务器(代码片段)

原文连接:使用JavaSocket手撸一个http服务器作为一个java后端,提供http服务可以说是基本技能之一了,但是你真的了解http协议么?你知道知道如何手撸一个http服务器么?tomcat的底层是怎么支持http服务的呢?大名鼎鼎的Servlet又是... 查看详情

网络编程————javasocket(udp/tcp套接字)(代码片段)

文章目录Socket是什么?TCP/UDP套接字UDP套接字DatagramSocketAPIDatagramSocket构造方法DatagramSocket方法InetSocketAddressAPI基于UDP实现回显服务器运行结果TCP套接字ServerSocketAPIServerSocket构造方法ServerSocket方法SocketAPISocket构造方法Socket方法TCP... 查看详情

javasocket.io连接测试(代码片段)

查看详情

网络编程practices(代码片段)

1:Java的通信编程,编程题(或问答),用JAVASOCKET编程,读服务器几个字符,再写入本地显示? ServerpublicclassServerprivateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer()tryss=newServe 查看详情

javasocket—网络连接(代码片段)

JavaSocket—网络连接1.概念网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket也就是套接字,可以用来实现不同虚拟机或者不同计算机之间的通信。在Java语言中,Socke... 查看详情

javasocket详解(代码片段)

整理和总结了一下经常遇到的问题:1.客户端socket发送消息后,为什么服务端socket没有收到?2.使用while循环实现连续输入,是不是就是多线程模式?3.对多线程处理机制不是很明白,希望详细讲解?4.希... 查看详情

javasocket编程

申明:本文摘自:http://www.cnblogs.com/rocomp/p/4790340.htmlJava最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用... 查看详情

javasocket编程学习笔记

 1.Socket通信简介及模型  JavaSocket可实现客户端--服务器间的双向实时通信。java.net包中定义的两个类socket和ServerSocket,分别用来实现双向连接的client和server端。2.Socket通信实现方法 2.1 服务器端(非多线程)   用... 查看详情

javasocket编程--聊天小案例

  很久以前写过socket聊天室,都快忘完了,心血来潮又重新写一遍。服务器端:packagecom.fancy;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;imp 查看详情

字节码学院之javasocket控制台聊天室(代码片段)

学了个把月基础,终于写出了一个双工通信的控制台版本的聊天室了,废话不说啦,直接上代码:服务端代码packagecom.zijiemaedu.socketdemo;importjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;importjava.util.Scanner;/***@author:Mr-zhang*@create: 查看详情

javasocket编程学习笔记

在上一篇中,使用了javaSocket+Tcp/IP 协议来实现应用程序或客户端--服务器间的实时双向通信,本篇中,将使用UDP协议来实现Socket的通信。1.关于UDP  UDP协议(用户数据报协议)是无连接的、不可靠的、无序的,速度快,进行... 查看详情

javasocket编程

一、网络编程概述网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不... 查看详情

javasocket编程简介

#JavaTCPIp编程 其实下面几张图片就可以解释简单解释tcp-ip协议的大体流程了。###计算机网络,分组报文和协议网络是一组通过通信信道相互连接的机器组成。组与组之间通过路由器连接数据通过分组报文传递协议,传输报文... 查看详情

实验五网络编程与安全(代码片段)

...号:实验5实验名称:网络编程与安全实验内容:1、掌握JavaSocket的相关内容;2、学会建立客户端与服务器端之间的联系;3、学习并应用密码学的相关内容严禁抄袭,有该行为者实验成绩归零,并附加其他 查看详情

javasocket编程api基础

 Socket是Java网络编程的基础,深入学习socket对于了解tcp/ip网络通信协议很有帮助,  此文讲解Socket的基础编程。Socket用在哪里:①、主要用在进程间,②、网络间通信。文章目录如下:一、Socket通信基本示例二、消息通信优... 查看详情

javasocket通信之客户端程序发送和接收数据(代码片段)

 JavaSocket通信(一)之客户端程序发送和接收数据网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类。通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据。对... 查看详情