Socketclient与服务端
- package test;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- class ThreadSocket implements Runnable{
- private Socket client = null ;
- public ThreadSocket(Socket client){
- this.client = client ;
- }
- public void run(){
- BufferedReader buf = null ; // 接收输入流
- PrintStream out = null ; // 打印流输出最方便
- try{
- out = new PrintStream(client.getOutputStream()) ;
- // 准备接收客户端的输入信息
- buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
- boolean flag = true ; // 标志位。表示能够一直接收并回应信息
- while(flag){
- String str = buf.readLine() ; // 接收客户端发送的内容
- if(str==null||"".equals(str)){ // 表示没有内容
- flag = false ; // 退出循环
- }else{
- if("bye".equals(str)){ // 假设输入的内容为bye表示结束
- flag = false ;
- }else{
- out.println("ECHO : " + str) ; // 回应信息
- }
- }
- }
- client.close() ;
- }catch(Exception e){}
- }
- }
- public class Test {
- public static void main(String[] args) throws IOException {
- server3();
- }
- public static void server3() throws IOException{
- ServerSocket server=new ServerSocket(8888);
- while(true){
- Socket client=server.accept();
- new Thread(new ThreadSocket(client)).start();
- }
- }
- public static void server2() throws IOException{
- ServerSocket server=new ServerSocket(8888);
- Socket client=server.accept();
- boolean flag=true;
- while(flag){
- BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
- PrintStream print=new PrintStream(client.getOutputStream());
- boolean f=true;
- while(f){
- String str=in.readLine();
- if(str==null||"".equals(str)){
- f=false;
- }else{
- if("bye".equals(str)){
- f=false;
- }else{
- print.println("Echo::"+str);
- }
- }
- print.print(str);
- }
- print.close();
- }
- client.close();
- server.close();
- }
- public static void server1() throws IOException{
- ServerSocket server=new ServerSocket(8888);
- Socket client=server.accept();
- PrintStream print=new PrintStream(client.getOutputStream());
- String str="Hello world";
- print.print(str);
- print.close();
- client.close();
- server.close();
- }
- /**
- *baidu的IP地址:119.75.217.109
- */
- }
- package test;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintStream;
- import java.net.Socket;
- public class Socket01{
- public static void main(String args[]) throws IOException{
- Socket socket=new Socket("localhost",8888);
- BufferedReader buf=new BufferedReader(new InputStreamReader(socket.getInputStream()));
- BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
- PrintStream out=new PrintStream(socket.getOutputStream());
- boolean flag = true ; // 定义标志位
- while(flag){
- System.out.print("输入信息:") ;
- String str = input.readLine() ; // 接收键盘的输入信息
- out.println(str) ;
- if("bye".equals(str)){
- flag = false ;
- }else{
- String echo = buf.readLine() ; // 接收返回结果
- System.out.println(echo) ; // 输出回应信息
- }
- }
- buf.close();
- out.close();
- input.close();
- socket.close();
- }
- };
- /**
- read1():
- hello
- read2():
- hello
- hello
- **/
Socketclient与服务端的更多相关文章
- 使用poco 的NetSSL_OpenSSL 搭建https 服务端,使用C++客户端,java 客户端访问,python访问(python还没找到带证书访问的代码.)
V20161028 由于项目原因,需要用到https去做一些事情. 这儿做了一些相应的研究. 这个https 用起来也是折腾人,还是研究了一周多+之前的一些积累. 目录 1,java client 通 ...
- Android-socket服务端断重启后,android客户端自动重连
今天研究这个问题搞了整整一天啊!终于出来了,不过我没有多大的成就感,为什么呢?因为这不是我的劳动成果.同样的问题,我却没想出来!心塞的很啊…… 不过还是要给大家分享一下,希望给大家带来帮助! 先声明一 ...
- AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答
一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...
- C# Socket服务端和客户端互相send和receive
服务端 { ]; ; { ...
- (C#:Socket)简单的服务端与客户端通信。
要求:1.可以完成一对一的通信:2.实现服务端对客户端一对多的选择发送:3.可以实现服务端的群发功能:4.可以实现客户端文件的发送: 要点:服务器端:第一步:用指定的端口号和服务器的ip建立一个End ...
- c#Socket Tcp服务端编程
创建一个socket服务类,绑定监听端口, 然后创建一个线程listen连接的客户端, 把监听到的客户端加入dictionary里面,以便于管理, 同时创建receive线程,循环接收数据加入list ...
- php编写TCP服务端和客户端程序
1.修改php.ini,打开extension=php_sockets.dll 2.服务端程序SocketServer.php <?php //确保在连接客户端时不会超时 set_time_li ...
- C#Winform窗体实现服务端和客户端通信例子(TCP/IP)
Winform窗体实现服务端和客户端通信的例子,是参考这个地址 http://www.cnblogs.com/longwu/archive/2011/08/25/2153636.html 进行了一些异 ...
- Winfrom 基于TCP的Socket服务端 多线程(进阶版)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
随机推荐
- Oracle中的for和while循环
实例: beginfor i in 51..500 loop delete from test t where t.date=to_date('2016-07-01', 'yyyy-MM-dd') a ...
- Android Studio中出现Gradle's dependency cache may be corrupt错误的解决办法
起因 某次打开AS,提示升级AS,升级后,提示升级gradle,选择升级. 结果在升级gradle时耗时较久,没有耐心,点击停止升级gradle, 还是停在那里,然后关闭AS,还是没反应,启动任务管理 ...
- cf上分的失落->高兴->更失落
cf昨日做出一个题居然div2打了1800多名直接上分了...我原以为垂直落地但是....我现在1399差一分就能蓝名了啊啊啊啊,以后不一定会有这个水平的啊,给个蓝名体验卡不行吗,多加一分会死啊... ...
- [LOJ] 分块九题 3
https://loj.ac/problem/6279 区间修改,区间查询前驱. TLE无数,我觉得这代码最精髓的就是block=1000. 谜一样的1000. 两个启示: 块内可以维护数据结构,比如 ...
- SpringCloud版本介绍和SpringBoot的兼容性
Spring Cloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号.Spring Cloud通过一个资源清单BOM(Bill of Material ...
- Spring Boot 返回Html界面
@Controller public class HelloController { @RequestMapping("/") public String index(){ ret ...
- Jmeter接口测试实战-Cookies
场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都有一个共同的特点, 有效期(expires). ...
- xtu read problem training 3 A - The Child and Homework
The Child and Homework Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on Code ...
- NYOJ 237 游戏高手的烦恼
游戏高手的烦恼时间限制:1000 ms | 内存限制:65535 KB难度:5描述有一位传说级游戏高手,在闲暇时间里玩起了一个小游戏,游戏中,一个n*n的方块形区域里有许多敌人,玩家可以使用炸弹炸掉某 ...
- laravel 文件删除
删除文件 <?php class demo{ public function del(){ $disk = Storage::disk('public');//获取磁盘实例 $disk-> ...