java socket发送_Java Socket通信(一)之客户端程序 发送和接收数据

本文介绍了Java Socket通信中客户端的使用,包括两种简略写法和一种完整写法。通过Socket类,客户端能连接到指定IP和端口的服务端,实现双向数据传输。示例代码展示了如何创建Socket连接,获取输入输出流,以及发送和接收数据。了解这些基础知识对于进行Java网络编程至关重要。

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

网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类。通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据。

对于Socket通信简述,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容。

例1:客户端的简略写法(一)。

Socket client = null;

try{

client = new Socket(Ip,Port);

String msg="发送的数据内容!";

//得到socket读写流,向服务端程序发送数据

client.getOutputStream().write(msg.getBytes());

byte[] datas = new byte[2048];

//从服务端程序接收数据

client.getInputStream().read(datas);

System.out.println(new String(datas));

}catch(Exception e){

e.printStackTrace();

}finally {

if (client != null) {

try {

client.close();

} catch (IOException e) {

System.out.println("systemerr:" +e);

}

}

}

例2:客户端简略写法(二)。

try{

client = new Socket();

SocketAddress socketAddress = new InetSocketAddress(Ip,Port);

client.connect(socketAddress, 3000);

String msg="访问的服务器返回内容!";

//得到socket读写流,向服务端程序发送数据

client.getOutputStream().write(msg.getBytes());

byte[] datas = new byte[2048];

//从服务端程序接收数据

client.getInputStream().read(datas);

System.out.println(new String(datas));

}catch(Exception e){

e.printStackTrace();

}finally {

if (client != null) {

try {

client.close();

} catch (IOException e) {

System.out.println("systemerr:" +e);

}

}

}

例3:客户端的完整写法。

try {

//1.建立客户端socket连接,指定服务器位置及端口

Socket socket =new Socket(Ip,Port);

//2.得到socket读写流

OutputStream os=socket.getOutputStream();

PrintWriter pw=new PrintWriter(os);

//输入流

InputStream is=socket.getInputStream();

BufferedReader br=new BufferedReader(new InputStreamReader(is));

//3.利用流按照一定的操作,对socket进行读写操作

String sendInfo="向服务器发送的数据信息!";

pw.write(sendInfo);

pw.flush();

socket.shutdownOutput();

//接收服务器的相应

String replyInfo=null;

while(!((replyInfo=br.readLine())==null)){

System.out.println("接收服务器的数据信息:"+replyInfo);

}

//4.关闭资源

br.close();

is.close();

pw.close();

os.close();

socket.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

关于Java Socket通信(一)之客户端程序 发送和接收数据的相关知识,小编就给大家介绍到这里,更多信息请登陆脚本之家网站了解更多内容!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值