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

网络应用分为客户端和服务端两部分,而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通信(一)之客户端程序 发送和接收数据的相关知识,小编就给大家介绍到这里,更多信息请登陆脚本之家网站了解更多内容!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值