socket传输不同的数据类型

主要记录一下用socket传输不同的数据用到的各种API。方便日后查询。

1,传输数字

发送端:

Socket socket = new Socket("127.0.0.1", 9099);  
OutputStream os = socket.getOutputStream();  
DataOutputStream dos = new DataOutputStream(os);  
dos.writeInt(22);  
dos.flush();  

接收端:

InputStream is = sck.getInputStream();  
DataInputStream dis = new DataInputStream(is);  
int number = dis.readInt();  
System.out.println("number=" + number);  

2,传输字符串

发送端:

OutputStream os=socket.getOutputStream();
PrintWriter pw=new PrintWriter(os);
String info="我叫王小二";  
 pw.write(info);  
 pw.flush();  

接收端:

InputStream is=socket.getInputStream();  
BufferedReader br=new BufferedReader(new InputStreamReader(is));  
String info=null;  
while(!((info=br.readLine())==null)){  
	System.out.println("信息为:"+info);  
}  

3,传输键盘输入的内容

发送端:

DataOutputStream out = new DataOutputStream(socket.getOutputStream());
String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
out.writeUTF(str);

接收端:

DataInputStream input = new DataInputStream(socket.getInputStream());
String clientInputStr = input.readUTF();
System.out.println(clientInputStr);

4,传输图片

发送端

FileInputStream fis = new FileInputStream("client.bmp");
//获取输出流
OutputStream out = socket.getOutputStream();
byte[] buf = new byte[1024];
int len = 0;
//2.往输出流里面投放数据
while ((len = fis.read(buf)) != -1){
	out.write(buf,0,len);
}
//通知服务端,数据发送完毕
socket.shutdownOutput();

发送端

InputStream in = socket.getInputStream();
//创建图片字节流
FileOutputStream fos = new FileOutputStream("server.bmp");
byte[] buf = new byte[1024];
int len = 0;
//往字节流里写图片数据
while ((len = in.read(buf)) != -1)
{
	fos.write(buf,0,len);
}

5.传输数组

发送端:

Socket s = new Socket("localhost",9091);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(new String[]{"123","232"});
out.flush();
out.close();

接收端:

ObjectInputStream oi = new ObjectInputStream(s.getInputStream());
String [] arr = (String[]) oi.readObject();
System.out.println(arr[0] + arr[1]);

5.传输文件
6.传输视频
7.传输音频

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值