标签:byte 简单的 main write mission 双向 except socket source
1 。Java的网络编程包括了两种通信协议:
TCP(Transmission Control Protocal) 传输控制协议
UDP(User Datagram Prptocol) 用数据包协议
static InetAddress getLocalHost() 返回本地主机
static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址 查找局部网内部存在的一个IP地址,如果没有找到抛出异常
简单的说:一个电脑上的应用程序都绑定了一个对应的编号(端口),通过IP可以定位到指定的主机(电脑),再加上端口就可以定位到指定的程序了。
URL(Uniform Resource Locator)统一资源定位符,可以直接使用此类找到互联网上的资源如一个简单的网页。
一般由:协议名,资源所在主机(域名),端口,资源名等部分组成;
package com.cj.TCP协议package com.cj.TCP协议;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
//创建服务器站点
ServerSocket ss = new ServerSocket(2020);
//获取到客户端发送的数据
Socket server = ss.accept();
//获取服务器端的输入流
InputStream is = server.getInputStream();
//获取输入流中的数据
byte[] b = new byte[is.available()];
is.read(b);
String ssss = new String(b);
System.out.println(server.getInetAddress().getHostName()+":"+ssss);
server.shutdownInput();
//回应数据
//获取要回应的数据
String data = "我没睡觉,我在干活";
//获取服务器输出流
OutputStream os= server.getOutputStream();
//将数据写入流中
os.write(data.getBytes());
System.out.println("我说:"+data);
//bos.close();
}
};
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Arrays;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
//创建站点
Socket soc = new Socket(InetAddress.getLocalHost(), 2020);
//获取要传输的数据
String data = "你睡觉了吗?";
//获取客户端输出流
OutputStream os= soc.getOutputStream();
//将数据写入流中
os.write(data.getBytes());
System.out.println("我说:"+data);
soc.shutdownOutput();
//得到的反馈结果
//获取客户端输入流
InputStream is = soc.getInputStream();
byte[] b = new byte[is.available()];
is.read(b);
System.out.println(Arrays.toString(b));
String ssss = new String(b);
System.out.println("说:"+ssss);
}
}
标签:byte 简单的 main write mission 双向 except socket source
原文地址:https://www.cnblogs.com/wzscom/p/10291185.html