Java Socket通信代码片
package zhang; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.Socket; /** * 服务器端的线程处理 * */ public class ServerThread extends Thread { Socket socket=null; //和本线程相关的socket /** * 构造方法 * */ public ServerThread(Socket socket){ this.socket=socket; } /** * 执行线程操作响应客户端的请求 * */ public void run(){ InputStream is=null; InputStreamReader isr=null; BufferedReader br=null; OutputStream os=null; OutputStreamWriter osw=null; BufferedWriter bw=null; //获取输入流,并读取客户端消息 try { is=socket.getInputStream(); isr=new InputStreamReader(is); br=new BufferedReader(isr); String content; while((content=br.readLine())!=null){ System.out.println(content); } socket.shutdownInput(); os=socket.getOutputStream(); osw=new OutputStreamWriter(os); bw=new BufferedWriter(osw); bw.write("欢迎您!"); bw.flush(); socket.shutdownOutput(); } catch (IOException e) { e.printStackTrace(); } //关闭资源 finally{ try { if(br!=null)br.close(); if(isr!=null) isr.close(); if(is!=null) is.close(); if(os!=null) os.close(); if(osw!=null) osw.close(); if(bw!=null) bw.close(); } catch (IOException e) { e.printStackTrace(); } } } }
package zhang; import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import org.apache.log4j.Logger; public class Server { static Logger logger=Logger.getLogger("Server"); public static void main(String[] args) { ServerSocket server=null; try { server=new ServerSocket(8887); System.out.println(server.getInetAddress()); int count=0; //客户端连接的个数 System.out.println("服务器已启动,等待客户端的连接..."); Socket socket=null; while(true){ socket=server.accept(); ServerThread serverthread=new ServerThread(socket); serverthread.start(); count++; System.out.println("客户端的数量为:"+count); InetAddress address=socket.getInetAddress(); System.out.println(address); } } catch (IOException e) { e.printStackTrace(); logger.debug("异常:"+e.getMessage()); } finally{ if(server!=null){ try { server.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
package zhang; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { //创建连接服务器的套接字 Socket socket=new Socket("127.0.0.1",8887); //向服务器发送信息 OutputStream os=socket.getOutputStream(); OutputStreamWriter osw=new OutputStreamWriter(os); BufferedWriter bw=new BufferedWriter(osw); bw.write("服务器你好,我是客户端..."); bw.flush(); //关闭输出流 socket.shutdownOutput(); InputStream is= socket.getInputStream(); InputStreamReader isr=new InputStreamReader(is); BufferedReader br=new BufferedReader(isr); String content; while((content=br.readLine())!=null){ System.out.println("来自服务器的响应:"+content); } //关闭资源 bw.close(); osw.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
先启动服务端:
服务端输出:
0.0.0.0/0.0.0.0
服务器已启动,等待客户端的连接...
再启动客户端:
客户端输出:
来自服务器的响应:欢迎您!
服务端输出:
0.0.0.0/0.0.0.0
服务器已启动,等待客户端的连接...
客户端的数量为:1
/127.0.0.1
服务器你好,我是客户端...
Java Socket通信代码片的更多相关文章
- Java Socket通信读取相关信息代码
转自:http://developer.51cto.com/art/201003/190206.htm Java Socket通信读取有不少需要我们注意的知识点.当我们在使用的时候有很多的问题摆在我们 ...
- java Socket通信使用BufferedReader和BufferedWriter的注意事项
注意事项:readLine()要求有换行标识,write()要输出换行标识,要调用flush()刷新缓冲区. 以下是取自java socket通信中的一小段代码. BufferedReader rea ...
- java socket通信-传输文件图片--传输图片
ClientTcpSend.java client发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io ...
- Socket通信代码(原理)
1.运行环境:NetBeans IDE 6.0.1 2.说明:先运行服务器端,再运行客户端. 3.服务器端代码: 新建java类Test import java.net.*; import java. ...
- 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以及一些 ...
- Java Socket通信实例
一.简单的客户端与服务器一对一连接: Socket通信的步骤: 1.创建ServerSocket和Socket 2.打开连接到Scket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关 ...
随机推荐
- bootstrap 一个简单的登陆页面
效果如图:用bootstrap 写的一个简单的登陆 一.修改样式 样式可以自己调整,例如换个背景色之类的,修改 background-color属性就可以 #from { background-col ...
- PHP7链接MySQL
1 <?php $mysqli = new mysqli("localhost", "root", "123"); if($mysql ...
- [论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)
原文: A Discriminative Feature Learning Approach for Deep Face Recognition 用于人脸识别的center loss. 1)同时学习每 ...
- html框架练习-基本网页制作
index.html <html> <head> <title>html框架</title> <meta charset="utf-8& ...
- 前端开发必备之chrome插件
Chrome浏览器目前是网络上可用的最好的浏览器之一,并且自2011年11月超越了Firefox浏览器之后,已经成为了互联网上占主导地位的浏览器. 本篇文章将与大家分享一些与前端开发有关的实用的Chr ...
- 学习ASP.NET Core Razor 编程系列六——数据库初始化
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- 关于 Rijndael 加密
MSDN https://msdn.microsoft.com/zh-cn/library/system.security.cryptography.rijndaelmanaged(v=vs.110) ...
- python 网路爬虫(二) 爬取淘宝里的手机报价并以价格排序
今天要写的是之前写过的一个程序,然后把它整理下,巩固下知识点,并对之前的代码进行一些改进. 今天要爬取的是淘宝里的关于手机的报价的信息,并按照自己想要价格来筛选. 要是有什么问题希望大佬能指出我的错误 ...
- [PA 2014]Bohater
Description 在一款电脑游戏中,你需要打败n只怪物(从1到n编号).为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值.任何时候你的生命值都不能降 ...
- codevs3990:中国剩余定理2
好久没做codevs啦 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cst ...