基于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();}
}

最近在整理一些资源工具,放在网站分享 http://tools.maqway.com
欢迎关注公众号:麻雀唯伊 , 不定时更新资源文章,生活优惠,或许有你想看的

JavaSocket相关推荐

  1. java socket同步通信,javasocket客户端与服务端同步通信实例

    javasocket客户端与服务端同步通信实例 工作中没涉及有关JA V A SOCKET编程的实际经历,但理论大概了解.想正明一下自已的对JA V A SOCKET理解写个通信TEST,通过TEST ...

  2. silverlight java通信_Silverlight使用JavaSocket连接jabber服务器

    Silverlight使用JavaSocket连接jabber服务器 一.开发环境 Vs2010,Sl4,jdk6,MyEclipse8.5 二.Silverlight socket使用 注意事项 1 ...

  3. arduino 与java通信_ardunio+esp8266与javaSocket网络通信(好)

    ardunio+esp8266与javaSocket网络通信 功能 通过ardunio向esp8266模块发送at指令,连接上wifi,然后向服务器发送tcp连接请求,之后是与服务器进行sockt通信 ...

  4. JavaSocket编写发送TCP请求的工具类

    转自:https://blog.csdn.net/jadyer/article/details/8788303 package com.jadyer.util;import java.io.ByteA ...

  5. java socket简,javasocket简单示例

    简单Socket测试_计算机软件及应用_IT/计算机_专业资料.简单的聊天小测试 服务端 importjava.io.DataInputStream; importjava.io.DataOutput ...

  6. java socket下载,javasocket.rar

    压缩包 : javasocket.rar 列表 proSocket proSocket\.project proSocket\src proSocket\src\net proSocket\src\n ...

  7. java起socket监听,java socket 监听示例,javasocket,java socket监

    java socket 监听示例,javasocket,java socket监 java socket监听示例: socket监听需要使用SocketServer类,如下代码:package cn. ...

  8. JAVA-Socket通信笔记

    TCP 的 Java 支持 协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构.交换方式.包含的意义以及怎样对报文所包含的信息进行解析,TCP/IP 协议族有 IP 协议.TCP 协议和 ...

  9. Java---Socket编程UDP/TCP

    socket方便了应用程序访问通讯协议TCP/IP . socket是作为通讯链入的端点.我们可以吧套接字看成是电话机,有了套接字,才有了通讯的工具.我们可以吧IP地址看成是电话号码,端口号看成是分机 ...

  10. javaSocket与C通信

    前段时间写了个web端与C服务端之间的通信不过用的是短连接 非堵塞的方式,一直想使用长连接,使tomcat启动的时候就和C服务端进行通信,但是一直没找到方法希望je的朋友能给点思路.先来看我现在的具体 ...

最新文章

  1. csharp: ODP.NET,System.Data.OracleClient(.net 4.0) and System.Data.OleDb读取Oracle g 11.2.0的区别...
  2. 17 redis -key设计原则
  3. Python进阶|聊聊异常处理
  4. 使用LXCFS实现容器资源的视图隔离
  5. 代码之美~强大的构造方法重载
  6. Spring依赖注入的理解
  7. 7种提高工作效率的Vim操作
  8. python与sql server_Python和SQL Server 2017的强大功能
  9. m126a linux驱动下载,惠普hp M126a打印机驱动
  10. 技能大赛训练题:交换机虚拟化练习
  11. 神奇的量子世界——量子纠缠(Matlab实现)
  12. java interface简写_JAVA开发中常见缩写(二)
  13. 解决Pycharm绘图报错:Error: failed to send plot to http://127.0.0.1:63342
  14. C语言二进制与十进制互相转换的方法和示例
  15. Linux作业 实现一个特殊的备份工具bak
  16. xcconfig编写指南
  17. springboot毕设项目“果然是你”水果直销平台vkfo8(java+VUE+Mybatis+Maven+Mysql)
  18. 比利时的金融监管机构更新120个加密货币网站黑名单
  19. php银行卡账户类型查询接口
  20. python打包程序在win10不能运行、点击无反应_Windows10平台用PyInstaller打成exe程序后不能运行请高手指点...

热门文章

  1. unique中译_unique是什么意思_unique的翻译_音标_读音_用法_例句_爱词霸在线词典
  2. SDUT OJ 蟠桃记
  3. 第六届360前端星计划_前端工程化浅析
  4. 6-4 静态成员应用
  5. 快捷给UE4项目改名
  6. 中国人寿财险java_中国人寿财险社会招聘笔试内容: 今天刚笔试完,蹭着记着赶紧写上来,以便大家以后参考;...
  7. Visio中图形关于轴线对称
  8. [Geek Challenge 2022]Web部分 writeup by q1jun
  9. java 正则表达式贪婪与懒惰
  10. 大数据之flink定时器