JavaSocket
来源:互联网 发布:angular.js教程 编辑:程序博客网 时间:2024/06/05 16:44
基于tcp通信的socket
import java.io.IOException;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;/* * 基于TCP通信的Socket,服务器端 */public class Server{public static void main(String[] args) throws IOException {//1.创建ServerSocket,绑定端口ServerSocket serverSocket = new ServerSocket(3333);//2.时刻监听端口System.out.println("*****服务器已启动等待客户端连接*****");Socket socket = null;long count = 0;while(true){ socket = serverSocket.accept(); ServerThread serverThread = new ServerThread(socket); serverThread.start(); count++; InetAddress address = socket.getInetAddress(); System.out.println("客户端ip"+address.getHostAddress()); System.out.println("客户端主机名"+address.getLocalHost()); System.out.println("连接本机的数量"+count);}}}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;public class ServerThread extends Thread{Socket socket = null;//初始化public ServerThread(Socket socket){this.socket = socket;}@Overridepublic void run() {InputStream is=null;InputStreamReader isr=null;BufferedReader br=null;OutputStream os=null;PrintWriter pw=null;try {//1.获取输入流,获取客户端信息is = socket.getInputStream();isr = new InputStreamReader(is);br = new BufferedReader(isr);String info;while((info = br.readLine())!=null){System.out.println("这里是服务端,客户端说:"+info);}socket.shutdownInput();//注意shutdown的顺序//2.响应客户端os = socket.getOutputStream();pw = new PrintWriter(os);pw.write("我是服务端,欢迎您!");pw.flush();socket.shutdownOutput();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//3.关闭资源try {if(pw!=null) pw.close();if(os!=null) os.close();if(br!=null)br.close();if(isr!=null)isr.close();if(is!=null)is.close();if(socket!=null)socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;public class Client {public static void main(String[] args) throws UnknownHostException, IOException {//1.创建socket对象,绑定主机和端口Socket socket = new Socket("localhost", 3333);//2.获取输出流,发送信息OutputStream os = socket.getOutputStream();PrintWriter pw = new PrintWriter(os);pw.write("我是客户端1!");pw.flush();socket.shutdownOutput();//3.响应服务端InputStream is = socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String info;while((info=br.readLine())!=null){System.out.println("我是客户端,服务端说"+info);}socket.shutdownInput();//4.关闭资源br.close();is.close();pw.close();os.close();socket.close();}}
基于udp通信的socket
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/* * 基于UDP通信的Socket,服务器端 */public class UDPServer {public static void main(String[] args) throws IOException {/* * 接受客户端信息 *///1.创建服务器端,指定端口DatagramSocket socket = new DatagramSocket(4444);//2.创建数据包,接受客户端数据 byte[] data = new byte[1024]; DatagramPacket packet = new DatagramPacket(data, data.length); //3.接受客户端数据 socket.receive(packet);//此方法在接受信息之前一直阻塞 //4.读取数据 String info = new String(data, 0, packet.getLength()); System.out.println("我是服务器,客户端说"+info); /* * 响应客户端 */ InetAddress address = packet.getAddress(); int port = packet.getPort(); byte[] data1 = "欢迎您".getBytes(); DatagramPacket packet2 = new DatagramPacket(data1, data1.length, address,port); socket.send(packet2); socket.close(); }}
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.UnknownHostException;/* * 客户端 */public class UDPClient {public static void main(String[] args) throws IOException {/* * 发送数据 *///1.定义服务器地址端口号数据InetAddress address = InetAddress.getByName("localhost");int port=4444;byte[] data = "我是客户端".getBytes();//2.创建数据报,包含要发送的信息DatagramPacket packet = new DatagramPacket(data,data.length, address, port);//3.发送数据DatagramSocket socket = new DatagramSocket();socket.send(packet);/* * 响应服务器数据 */byte[] data1 = new byte[1024]; DatagramPacket packet1 = new DatagramPacket(data1, data1.length); //3.接受客户端数据 socket.receive(packet1);//此方法在接受信息之前一直阻塞 //4.读取数据 String info = new String(data1, 0, packet1.getLength()); System.out.println("我是客户端,服务端说"+info); socket.close();}}
下面关于InetAddress和URL类的例子
import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Arrays;public class Test1 {public static void main(String[] args) throws UnknownHostException {//获取本机InetAddress实例InetAddress address = InetAddress.getLocalHost();System.out.println("计算机名"+address.getHostName());System.out.println("IP"+address.getHostAddress());//字节数组形式的IP地址byte[] bytes = address.getAddress();System.out.println("字节数组形式IP"+Arrays.toString(bytes));//根据机器名获取InetAddress实例InetAddress address2 = InetAddress.getByName("169.254.82.89");//InetAddress address2 = InetAddress.getByName("idea-PC");System.out.println("计算机名"+address2.getHostName());System.out.println("IP"+address2.getHostAddress());}}
import java.net.MalformedURLException;import java.net.URL;public class Test2 {public static void main(String[] args) throws MalformedURLException {//创建一个URL实例,注意+httpURL baidu = new URL("http://www.baidu.com");URL url = new URL(baidu, "/index.html?name=aa#image");System.out.println("协议:"+url.getProtocol());System.out.println("主机:"+url.getHost());System.out.println("文件路径:"+url.getPath());System.out.println("文件:"+url.getFile());System.out.println("相对路径:"+url.getRef());System.out.println("查询字符串:"+url.getQuery());//如果未指定端口号,则使用默认的端口号,返回值为-1System.out.println("端口号:"+url.getPort());}}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;/* * URL读取网络上内容 */public class Test3 {public static void main(String[] args) throws IOException {URL url = new URL("http://www.baidu.com");InputStream is = url.openStream();InputStreamReader isr = new InputStreamReader(is,"utf-8");BufferedReader br = new BufferedReader(isr);String data = br.readLine();while(data!=null){System.out.println(data);data = br.readLine();}br.close();isr.close();is.close();}}
阅读全文
0 0
- javaSocket
- JavaSocket
- JavaSocket
- javaSocket基础
- javasocket例子
- JavaSocket通信
- Javasocket套接字
- javaSocket编程TCP
- javaSocket TCP框架比较
- javaSocket与C通信
- JavaSocket应用(一)
- JavaSocket编程要点,,
- JavaSocket编程基础
- javaSocket传输模式
- JavaSocket简单通信
- JavaSocket实现TCP编程
- javasocket通信小例子
- javasocket实现简易聊天室
- 多路复用I/O--epoll
- 设计基础理论
- 1.8.S5PV210启动过程详解(一)之预备知识
- 初识Redis------(二)
- RockChip RK3399方案 RK3399方案定制设计 RK3399开发
- JavaSocket
- win10+VS2015 编译64位的gdal,并配置环境
- qml实现简单的时间选择控件
- 程序员必备的600个英语词汇
- ArcGIS Pro开发
- java数据结构排序之快速排序
- 今天你用 === 了吗?
- pyqt5 官方例子笔记 animate-1
- HDU 6059 Kanade's trio 字典树 统计 容斥