java网络编程
UDP的使用
package udpseder;
import java.io.IOException;
import java.net.*;
import java.nio.charset.StandardCharsets;
public class udpsender {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(9887);
byte[] data = "hello.jack".getBytes(StandardCharsets.UTF_8);
DatagramPacket packet = new DatagramPacket(data, data.length,
InetAddress.getByName("192.168.12.1"), 9887);
socket.send(packet);
socket.close();
}
}
package udpseder;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class udpserver {
public static void main(String[] args) throws IOException {
DatagramSocket socket=new DatagramSocket(9887);
System.out.println("准备接收");
byte [] buf=new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
int length=packet.getLength();
byte[] data = packet.getData();
String s=new String(data,0,length);
System.out.println(s);
socket.close();
}
}
socket文件图片传输
package homework;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class homework {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket=new ServerSocket(9999);
Socket socket=serverSocket.accept();
BufferedInputStream bufferedInputStream = new BufferedInputStream(
socket.getInputStream());
byte[] bytes = StreamUtils.streamToByteArray(bufferedInputStream);
String destfilepath="src\\hello.txt";
BufferedOutputStream bos = new BufferedOutputStream(new
FileOutputStream(destfilepath));
bos.write(bytes);
bos.close();
bufferedInputStream.close();
socket.close();
serverSocket.close();
}
}
package homework;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class homework01 {
public static void main(String[] args) throws Exception {
Socket socket=new Socket(InetAddress.getLocalHost(),9999);
String filepath="d:\\hello.txt";
BufferedInputStream bufferedInputStream = new BufferedInputStream(
new FileInputStream(filepath));
byte[] bytes = StreamUtils.streamToByteArray(bufferedInputStream);
BufferedOutputStream bos = new BufferedOutputStream(
socket.getOutputStream());
bos.write(bytes);
bufferedInputStream.close();
socket.shutdownOutput();
bos.close();
socket.close();
}
}
package homework;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class StreamUtils {
public static byte[] streamToByteArray(InputStream is) throws Exception{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int len;
while((len=is.read(b))!=-1){
bos.write(b, 0, len);
}
byte[] array = bos.toByteArray();
bos.close();
return array;
}
public static String streamToString(InputStream is) throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder builder= new StringBuilder();
String line;
while((line=reader.readLine())!=null){
builder.append(line+"\r\n");
}
return builder.toString();
}
}