首先就肯定要知道ServerSocket,服务端的服务端口以及服务器的地址。
创新互联公司是一家专业提供市中企业网站建设,专注与成都网站设计、成都网站建设、HTML5、小程序制作等业务。10年已为市中众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
然后再用 Socket socket=new Socket(port,address);
最后,如果你需要接收数据之类的,就用socket.getInputStream(),发送数据用socket.getOutputStream()
要接入七牛云存储,您需要拥有一对有效的 Access Key 和 Secret Key 用来进行签名认证。可以通过如下步骤获得:
开通七牛开发者帐号
登录七牛开发者自助平台,查看 Access Key 和 Secret Key
在获取到 Access Key 和 Secret Key 之后,您可以按照如下方式进行密钥配置:
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
上传下载接口
上传流程
在七牛云存储中,整个上传流程大体分为这样几步:
业务服务器颁发 uptoken(上传授权凭证)给客户端(终端用户)
客户端凭借 uptoken 上传文件到七牛
在七牛获得完整数据后,根据用户请求的设定执行以下操作:
a. 如果用户设定了returnUrl,七牛云存储将反馈一个指向returnUrl的HTTP 303,驱动客户端执行跳转;
b. 如果用户设定了callbackUrl,七牛云存储将向callbackUrl指定的地址发起一个HTTP 请求回调业务服务器,同时向业务服务器发送数据。发送的数据内容由callbackBody指定。业务服务器完成回调的处理后,可以在HTTP Response中放入数据,七牛云存储会响应客户端,并将业务服务器反馈的数据发送给客户端;
c. 如果两者都没有设置,七牛云存储根据returnBody的设定向客户端发送反馈信息。
需要注意的是,回调到业务服务器的过程是可选的,它取决于业务服务器颁发的 uptoken。如果没有回调,七牛会返回一些标准的信息(比如文件的 hash)给客户端。如果上传发生在业务服务器,以上流程可以自然简化为:
业务服务器生成 uptoken(不设置回调,自己回调到自己这里没有意义)
凭借 uptoken 上传文件到七牛
善后工作,比如保存相关的一些信息
服务端代码:
import java.io.IOException;
import java.io.InputStream;
import java点虐 .InetAddress;
import java点虐 .ServerSocket;
import java点虐 .Socket;
import java点虐 .UnknownHostException;
public class Server {
public static void main(String[] args) throws UnknownHostException, IOException {
ServerSocket server = new ServerSocket(2408, 5, InetAddress.getByName("localhost"));
while (true) {
// 等待客户端的连接
Socket clientSocket = server.accept();
// 为每个连接的客户端分配一个线程,与客户端通信
new Thread(new ClientThread(clientSocket)).start();
}
}
}
class ClientThread implements Runnable {
private Socket clientSocket;
public ClientThread(Socket socket) {
this.clientSocket = socket;
}
@Override
public void run() {
try {
InputStream input = clientSocket.getInputStream();
byte[] buffer = new byte[1024];
boolean exit = false;
while(!exit) {
int len = input.read(buffer);
String message = new String(buffer, 0, len);
if ("bye".equals(message)) {
exit = true;
}
System.out.println(clientSocket.getRemoteSocketAddress() + ": " + message);
}
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码:
import java.io.IOException;
import java.io.OutputStream;
import java点虐 .InetAddress;
import java点虐 .Socket;
import java点虐 .UnknownHostException;
import java.util.Scanner;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Scanner scanner = new Scanner(System.in);
Socket socket = new Socket(InetAddress.getByName("localhost"), 2408);
OutputStream output = socket.getOutputStream();
boolean exit = false;
while (!exit) {
String message = scanner.nextLine();
if ("bye".equals(message)) {
exit = true;
}
byte[] data = message.getBytes();
output.write(data);
output.flush();
}
socket.close();
}
}