Java Socket通信示例
Socket分为ServerSocket和Socket两大类;
其中ServerSocket用于服务器端,可以通过accept方法监听请求,监听到请求后返回Socket;
Socket用户具体完成数据传输,客户端直接使用Socket发生请求并传输数据。
DEMO:
单方面发送消息:
服务端:
package com.seesun2012.socket;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Socket服务端
*
* @author seesun2012@163.com
*
*/
public class TcpServer {
public static void main(String[] args) {
doServer();
}
private static void doServer() {
try {
//建立服务端的Socket服务
ServerSocket ss = new ServerSocket(15421);
//获取客户端对象
Socket s = ss.accept();
//获取客户端IP地址
String ip = s.getInetAddress().getHostAddress();
//获取客户端端口号
int port = s.getPort();
System.out.println(ip + ":" + port + " 已建立连接");
//用输入流接收客户端输出流
InputStream ins = s.getInputStream();
byte[] bytes = new byte[1024];
int len = ins.read(bytes);
//将二进制转成字符串
String text = new String(bytes, 0, len);
System.out.println(text);
//释放资源
s.close();
ss.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
客户端:
package com.seesun2012.socket;
import java.io.OutputStream;
import java.net.Socket;
/**
* Socket客户端
*
* @author seesun2012@163.com
*
*/
public class TcpClient {
public static void main(String[] args) {
doSocket();
}
private static void doSocket(){
try {
//与服务器建立连接
Socket s = new Socket("127.0.0.1", 15421);
//获取一个输出流
OutputStream os = s.getOutputStream();
//向服务器输出流中传入二进制字节流
os.write("你好,CHINA~!".getBytes());
//释放资源
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Java Socket通信示例的更多相关文章
- 多线程Java Socket编程示例
package org.merit.test.socket; import java.io.BufferedReader; import java.io.IOException; import jav ...
- java socket通信-传输文件图片--传输图片
ClientTcpSend.java client发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io ...
- java Socket通信使用BufferedReader和BufferedWriter的注意事项
注意事项:readLine()要求有换行标识,write()要输出换行标识,要调用flush()刷新缓冲区. 以下是取自java socket通信中的一小段代码. BufferedReader rea ...
- Java Socket通信读取相关信息代码
转自:http://developer.51cto.com/art/201003/190206.htm Java Socket通信读取有不少需要我们注意的知识点.当我们在使用的时候有很多的问题摆在我们 ...
- Java Socket编程示例
一.Socket简介: 1.什么是Socket 网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket.Socket通常用来实现客户方和服务方的连接.Socket ...
- Java socket通信
首先抛开语言层面,简单介绍一下socket通信过程: 1.服务器端开启监听端口,阻塞进程 等待客户端连接 2.客户端连接,这时就产生了一个socket socket就相当于一个传递消息的通道,一般都 ...
- Java Socket通信以及可能出现的问题解决
Java中基于TCP协议实现网络通信的两个类:客户端的Socket和服务器端的ServerSocket. Socket通信模型如图所示: 不管Socket通信的功能有多复杂,任何socket通信过程的 ...
- Java Socket通信实现私聊、群聊
前言 闲言少叙,上代码! 代码编写 server服务端 /** * 服务端 */ public class Server { private static ServerSocket server = ...
- Java Socket 通信实例 - 转载
基于Tcp协议的简单Socket通信实例(JAVA) 好久没写博客了,前段时间忙于做项目,耽误了些时间,今天开始继续写起~ 今天来讲下关于Socket通信的简单应用,关于什么是Socket以及一些 ...
随机推荐
- SQL数据库查询语言(1)
目录 MySQL数据库 MySQL安装与配置 DDL数据定义语言 创建数据库 查看.删除数据库 修改.备份.恢复数据库 创建表 修改表 MySQL常用数据类型 DML数据操纵语言 Insert语句 m ...
- soapui
webservice 的请求可使用工具:soapui 天气预报的接口地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsd ...
- 【转】如何不让DataGridView自动生成列
源地址:https://www.cnblogs.com/hailexuexi/p/3983856.html
- luoguP1401 城市
https://www.luogu.org/problemnew/show/P1401 二分答案网络流判断是否可行即可 #include <bits/stdc++.h> using nam ...
- 洛谷P4494 [HAOI2018]反色游戏(tarjan)
题面 传送门 题解 我们先来考虑一个联通块,这些关系显然可以写成一个异或方程组的形式,形如\(\oplus_{e\in edge_u}x_e=col_u\) 如果这个联通块的黑色点个数为奇数,那么显然 ...
- python基础03-循环结构及函数基础
循环结构及函数基础 循环结构(for-in) 说明:也是循环结构的一种,经常用于遍历字符串.列表,元组,字典等 格式: for x in y: 循环体 执行流程:x依次表示y中的一个元素,遍历完所有元 ...
- 警告"System.Configuration.ConfigurationSettings.AppSettings”已过时,解决办法
解决办法: 直接把ConfigurationSettings写成ConfigurationManager,但是提示没有ConfigurationManager语句.
- Wscript的popup
Dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") WshSHell.popup "枚举主 ...
- 面向对象中的@classonlymethod 与 @classmethod的区别
如果要使用classonlymethod ,则需要先定义好一个classonlymethod 类. 首先我们需要明白无论是classonlymethod还是classmethod,本质都是一个类,而c ...
- vue指令与事件修饰符
一.条件渲染指令 vue中提供了两个指令可以用于判断是否要显示元素,分别是v-if和v-show. 实例: <!DOCTYPE html> <html lang="en&q ...