TCP 上传
来源:互联网 发布:优化差的游戏 编辑:程序博客网 时间:2024/06/06 04:42
tcp协议:
1.面向连接的
2.通过三次握手完成连接
3.可靠地协议
4.相对于udp稍慢
分为服务端:SeverSocket
和客户端:Socket
服务端步骤:
1.建立tcp Socket服务,必须要监听一个端口
ServerSocket ss=new ServerSocket(port);
2.通过accptet方法,返回一个socket对象,同过这个socket与客户端的socket建立连接。
Socket s= ss.accept();
3.通过socket获取输入输出流,进行信息通信
写:s.getOutputStream();
读:s.getInputStream()
4.关闭资源
s.close();
ss.close();
客户端
1.建立Socket客户端,ip代表要连接的目的地址和端口
Socket s=new Socket(ip,port)
2.通过socket获取输入输出流与服务端通信
写:s.getOutputStream();
读:s.getInputStream()
3.关闭资源。
s.close();
上传文本
服务端
package com.csdn.net;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class UploadServer {
/**
* @param args
* @throws IOException
*/
publicstatic void main(String[] args) throws IOException {
ServerSocketss=new ServerSocket(9009);
Sockets=ss.accept();
Stringip=s.getInetAddress().getHostAddress();
System.out.println(ip+"……connection");
BufferedReaderbrin =new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriterpw=new PrintWriter(newFileWriter("C:/Users/Yule/Desktop/server.txt"),true);
Stringline=null;
while((line=brin.readLine())!=null){
pw.println(line);
}
PrintWriterpwout=new PrintWriter(s.getOutputStream(),true);
pwout.println("上传成功!!");
pw.close();
s.close();
ss.close();
}
}
客户端
package com.csdn.net;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class UploadClient {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
publicstatic void main(String[] args) throws Exception {
Sockets=new Socket("192.168.49.186",9009);
BufferedReaderbr=new BufferedReader(newFileReader("C:/Users/Yule/Desktop/server.txt"));
PrintWriterpwout=new PrintWriter(s.getOutputStream(),true);
Stringline =null;
while((line=br.readLine())!=null){
pwout.println(line);
}
s.shutdownOutput();
BufferedReaderbrin=new BufferedReader(new InputStreamReader(s.getInputStream()));
Stringstr=brin.readLine();
System.out.println(str);
br.close();
s.close();
}
}
上传图片
服务端
package com.csdn.net;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ImgServer {
/**
* @param args
*/
publicstatic void main(String[] args) throws IOException {
ServerSocketss=new ServerSocket(9009);
while(true){
Sockets=ss.accept();
newThread(new ImgThread(s)).start();
}
//ss.close();
}
}
class ImgThread implements Runnable{
privateSocket s;
publicImgThread(Socket s){
this.s=s;
}
@Override
publicvoid run() {
intcount=1;
try{
Stringip=s.getInetAddress().getHostAddress();
System.out.println(ip+"……connection");
InputStreamin=s.getInputStream();
Filedir=new File("C:/Users/Yule/Desktop");
Filef=new File(dir,ip+"("+count+").jpg");
while(f.exists()){
f=newFile(dir,ip+"("+(count++)+").jpg");
}
FileOutputStreamfos=new FileOutputStream(f);
byte[]buf=new byte[1024];
intlen=0;
while((len=in.read(buf))!=-1){
fos.write(buf,0,len);
}
OutputStreamout=s.getOutputStream();
out.write("上传成功了".getBytes());
fos.close();
s.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
客户端
package com.csdn.net;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class ImgClient {
/**
* @param args
*/
publicstatic void main(String[] args) throws Exception {
// if(args.length==0){
// System.out.println("请指定一个jpg文件");
// return;
// }
// Filef=new File(args[0]);
Sockets=new Socket("192.168.49.205",9009);
FileInputStreamfis=new FileInputStream("F:\\Picture\\壁纸\\图片\\1(1).jpg");
OutputStreamout=s.getOutputStream();
byte[]buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1){
out.write(buf,0, len);
}
s.shutdownOutput();
InputStreamin=s.getInputStream();
byte[]b=new byte[1024];
intnum=in.read(b);
System.out.println(newString(b,0,num));
fis.close();
s.close();
}
}
- TCP 上传
- 基于Tcp上传文件
- TCP实现 文本文件上传
- TCP实现图片上传
- java TCP上传文本
- TCP文件上传案例
- Tcp上传文件 服务器端
- tcp文件复制上传
- TCP-上传文本文件
- TCP-上传图片
- Tcp文件上传
- TCP实现文本文件上传
- TCP聊天文件上传
- TCP 上传图片
- TCP上传图片
- 多线程TCP文件上传
- TCP上传文件
- Java-Socket TCP-文件上传
- 关于 hostapd
- 一个基于 osip 库的 UAC 和 UAS 的代码整理
- 我们拿这10年做什么——让计划服从变化
- JSTL中fmt标签详解
- 无线操作模式Wireless Operating Modes
- TCP 上传
- Session完成用户登陆2
- UISlider 滑块控件—IOS开发
- 反射
- 各行小数点对齐
- android与网络(中)socket的陷阱
- HOWTO recover deleted files on an ext3 file system
- php字符串操作,thinkphp简易运行
- 使用JDBC对数据库进行CRUD