一、什么是socket编程

socket编程,是在不同的进程间进行网络通讯的一种协议,在socket编程中基于TCP、UDP等协议做的一层封装,是一套系统所提供的的用于进行网络通信的编程接口。

二、 java实现socket代码

客户端java代码:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;public class TcpSocketClient {/*** 客户端程序*/public void client() throws IOException {Scanner scanner = new Scanner(System.in);System.out.println("等待连接服务端!");Socket socket = new Socket("127.0.0.1", 2111);System.out.println("连接服务端成功!");while (true) {// 给服务端发信息System.out.print("请输入:");String s = scanner.next();if ("out".equals(s)) {break;}OutputStream outputStream = socket.getOutputStream();outputStream.write(s.getBytes(StandardCharsets.UTF_8));byte[] bytes = new byte[1024];// 读一下服务端发来的信息InputStream inputStream = socket.getInputStream();int read = inputStream.read(bytes);System.out.println("服务端:" + new String(bytes, 0, read, Charset.defaultCharset()));}}public static void main(String[] args) throws IOException {TcpSocketClient tcpSocketServer = new TcpSocketClient();tcpSocketServer.client();}
}

服务端java代码:

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;public class TcpSocketServer {/*** 服务端程序*/public void server() throws IOException {Scanner scanner = new Scanner(System.in);// 服务端监听 1111 端口ServerSocket serverSocket = new ServerSocket(1111);System.out.println("等待连接");Socket client = serverSocket.accept();System.out.println("连接成功!");while (true) {// 获取客户端输入流InputStream inputStream = client.getInputStream();byte[] bytes = new byte[1024];int read = inputStream.read(bytes);// 客户端发来的消息System.out.println("客户端:" + new String(bytes, 0, read, Charset.defaultCharset()));// 给客户端发端消息System.out.print("请输入:");String nextLine = scanner.next();if ("out".equals(nextLine)) {break;}client.getOutputStream().write(nextLine.getBytes(StandardCharsets.UTF_8));}}public static void main(String[] args) throws IOException {TcpSocketServer tcpSocketServer = new TcpSocketServer();tcpSocketServer.server();;}
}

三、socket测试流程分析

先启动服务端server,再启动客户端client,等待提示连接成功后就可以测试发信息了

server启动连接:

client启动连接:

流程分析:

JAVA—socket编程相关推荐

  1. Java Socket编程如何建立两者关系

    转自:http://developer.51cto.com/art/201003/190582.htm Java Socket编程需要大家详细的学习,有关的技术一直在不断的更新.那么要如何才能掌握好有 ...

  2. JAVA socket编程 Datagram套接字 UDP协议(转)

      查看文章     JAVA socket编程 Datagram套接字 UDP协议 2009-05-13 09:35 1 UDP套接字 数据报(Datagram)是网络层数据单元在介质上传输信息的一 ...

  3. Java Socket编程详解

    Java Socket编程是Java网络编程很重要的内容,现参考了许多资料,总结如下: 1. Java网络编程原理+Socket编程 http://www.cnblogs.com/linzheng/a ...

  4. Java Socket编程----通信是这样炼成的

    转载自 Java Socket编程----通信是这样炼成的 Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socke ...

  5. tcp java实例_实现了基于TCP的Java Socket编程实例代码

    实现了基于TCP的Java Socket编程,功能很简单:客户端向服务器端输出一名话"connect",服务器端接收输出到控制台并向客户端输出一名话"Hello" ...

  6. 用JAVA SOCKET编程,读服务器几个字符,再写入本地显示

    Server: package cn.itcast.framework.socket;import java.io.BufferedReader; import java.io.IOException ...

  7. java socket 编程 客户机服务器_Java Socket编程服务器响应客户端实例代码

    通过输入流来读取客户端信息,相应的时候通过输出流来实现. 服务端类的代码: import java.io.BufferedReader; import java.io.IOException; imp ...

  8. java socket编程心跳_Java Socket编程心跳包创建实例解析

    1.什么是心跳包? 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包. 用来判断对方(设备,进程或其它网元)是否正常运行,采用 ...

  9. Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...

    此人博客挺好的,推荐一个! 一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实 ...

  10. 多线程Java Socket编程示例(转)

    这篇做为学习孙卫琴<<Java网络编程精解>>的学习笔记吧.其中采用Java 5的ExecutorService来进行线程池的方式实现多线程,模拟客户端多用户向同一服务器端发送 ...

最新文章

  1. 杀毒时能否使用计算机,电脑杀毒以后,程序无法使用,电脑杀毒后共享不能使用-...
  2. #define CV_DEFAULT(val) = val 这样的宏定义是没有问题的~
  3. 学完计算机之后的感受,计算机教学心得心得体会
  4. IDEA中新建SpringBoot项目时提示:Artifact contains illegal characters
  5. c++开发中,调试排查问题总结
  6. 拥有属于你的“尬聊”机器人
  7. html搜索框美化代码单词,CSS 漂亮搜索框美化代码
  8. OpenCV图像分割-watershed
  9. exif linux php扩展_CentOS下安装php扩展exif
  10. linux重启网卡命令_如何在 Linux 中更改 MAC 地址 | Linux 中国
  11. 每次打印只能打打印一页
  12. 求知成瘾,却无作品 的思考 - stoneniqiu - 博客园
  13. 计算机黑屏闪光标,电脑开机黑屏只有光标在闪的解决方法
  14. 【T+】取消记账提示入库失败,请至少选择两个字
  15. 变速齿轮”再研究-----(转帖)
  16. Windows 7下 IE升级到,IE 11的F12控制台不能使用的解决
  17. java中string.length_Java 中的String length() 方法
  18. 优秀的第二外语学习网站:Lang-8
  19. 沉浸其中,二次元高清图片
  20. SPSS 建模数据分析实战之 银行信用评分

热门文章

  1. dll文件丢失怎么恢复?如何彻底修复?
  2. 无法打开文件ws32_2.lib ws2_32.lib
  3. 如何在Word中输入带圈数字1-10的黑底白字和白底黑字的数字字符?
  4. USB2.0 EMC标准设计
  5. windows64位搭建汇编(包含汇编dosbox , masm文件,link文件和debug调试)以及debug调试命令(dosbox调试汇编程序的简单使用教程)
  6. 《图解深度学习》学习笔记(一)
  7. lammps教程:1D正弦粗糙界面建模建模教程
  8. MATLAB/Simulimk 光伏发电+boost+储能+双向dcdc+并网逆变器控制(低压用户型电能路由器仿真模型)
  9. NekoHtml 解析内容时需要注意的地方
  10. Java实现HTML代码生成PDF文档