我用socket方式做了个client-server系统,需要进行文字和图片的传输,我现在已经能传一组文字和图片,请问怎么传多组,组数可能不定~能给洋例代码吗 谢谢
这是我的代码
server: import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.net.ServerSocket;
import java.net.Socket;public class ServerSender {
public static void main(String[] args) {
System.out.println("Server Started.");
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("accepting client connection.");
Socket socket = serverSocket.accept();
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("send text first then send a picture");
FileInputStream fis = new FileInputStream("D:\\123.jpg");
byte[] buffer = new byte[1024];
int len;
while (((len = fis.read(buffer))>0))
dos.write(buffer, 0, len);
fis.close();
dos.flush();
dos.close();
}catch(Exception e){}
}}client:import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;public class ClientReceiver {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket server = new Socket("192.168.1.64", 8888);
DataInputStream dis = new DataInputStream(
server.getInputStream());
System.out.println("Server发来的字符串是:" + dis.readUTF());
FileOutputStream fos = new FileOutputStream("D:\\copy.gif");
byte[] buffer = new byte[1024];
int len;
while (((len = dis.read(buffer))>0))
fos.write(buffer, 0, len);
dis.close();
fos.flush();
fos.close();
server.close();
}
}
这是我的代码
server: import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.net.ServerSocket;
import java.net.Socket;public class ServerSender {
public static void main(String[] args) {
System.out.println("Server Started.");
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("accepting client connection.");
Socket socket = serverSocket.accept();
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("send text first then send a picture");
FileInputStream fis = new FileInputStream("D:\\123.jpg");
byte[] buffer = new byte[1024];
int len;
while (((len = fis.read(buffer))>0))
dos.write(buffer, 0, len);
fis.close();
dos.flush();
dos.close();
}catch(Exception e){}
}}client:import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;public class ClientReceiver {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket server = new Socket("192.168.1.64", 8888);
DataInputStream dis = new DataInputStream(
server.getInputStream());
System.out.println("Server发来的字符串是:" + dis.readUTF());
FileOutputStream fos = new FileOutputStream("D:\\copy.gif");
byte[] buffer = new byte[1024];
int len;
while (((len = dis.read(buffer))>0))
fos.write(buffer, 0, len);
dis.close();
fos.flush();
fos.close();
server.close();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货