java socket 循环读取_java socket tcp(服务器循环检测)

该博客介绍了Java实现的TCP Socket通信,服务器端采用循环检测机制,客户端间歇性发送消息。服务器代码创建ServiceSocket类,继承Thread,通过Socket连接获取输入输出流并进行数据交换。客户端代码创建ClientSocket类,连接服务器并发送、接收数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚才看了下以前写了的代码,tcp通信,发现太简单了,直接又摘抄了一个,运行

博客:http://blog.youkuaiyun.com/zhy_cheng/article/details/7819659

优点是服务器循环检测,客户端间歇性发送,缺点是代码杂糅在一块,不太容易看懂,大概明白它是通过方法重载实现的:

服务器代码:

建立ServiceSocket.java,ServiceSocket代码:

package com.swust.udp;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class ServiceSocket extends Thread{

public Socket sock;

public ServiceSocket(Socket sock)

{

this.sock=sock;

}

public void run()

{

try{

OutputStream os=sock.getOutputStream();

InputStream is=sock.getInputStream();

os.write("Hello这里是来自服务器的消息".getBytes());

byte []buf=new byte[100];

int len=is.read(buf);

System.out.println(new String(buf,0,len));

os.close();

is.close();

sock.close();

}

catch(Exception e)

{

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

ServerSocket ss=new ServerSocket(6000); //循环扫描,没有关闭:ss.close();

while(true)

{

Socket s=ss.accept();

new ServiceSocket(s).start();

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

客户端代码:

建立ClientSocket.java,ClientSocket代码:

package com.swust.udp;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.InetAddress;

import java.net.Socket;

public class ClientSocket {

public static void main(String []args)

{

try {

Socket s=new Socket(InetAddress.getByName(null),6000);//"localhost" "127.0.0.1s"

OutputStream os=s.getOutputStream();

InputStream is=s.getInputStream();

byte []buf=new byte[100];

int len=is.read(buf);

System.out.println(new String(buf,0,len));

os.write("Hello,我是客户端的消息".getBytes());

Thread.sleep(100);

os.close();

is.close();

s.close();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值