版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SS__FF/article/details/78914320
*注意先开启客户端再开启服务端
服务端:
package com.softeem.scokt;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
/*
* Tcp传输,客户端建立的过程。
* 1,创建tcp客户端socket服务。使用的是Socket对象。
* 建议该对象一创建就明确目的地。要连接的主机。
* 2,如果连接建立成功,说明数据传输通道已建立。
* 该通道就是socket流 ,是底层建立好的。 既然是流,说明这里既有输入,又有输出。
* 想要输入或者输出流对象,可以找Socket来获取。
* 可以通过getOutputStream(),和getInputStream()来获取两个字节流。
* 3,使用输出流,将数据写出。
* 4,关闭资源。
*/
public class TCPSocket
{
public static void main(String[] args) throws UnknownHostException, IOException {
//创建socket服务
Socket st = new Socket(InetAddress.getLocalHost(), 8969);
//socket获取输出流
OutputStream out = st.getOutputStream();
//键盘键入内容
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
//输出流将数据写出
out.write(str.getBytes());
//关闭资源
st.close();
}
}
客户端:
package com.softeem.scokt;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import com.softeem.IO.InputStram;
public class TCPAccest
{
public static void main(String[] args) throws IOException {
//打开服务 接受端口号为8969的数据
ServerSocket ss = new ServerSocket(8969);
//接受数据
Socket st = ss.accept();
//获取ip
String ip = st.getInetAddress().getHostAddress();
//socket获取输入流
InputStream is = st.getInputStream();
//创建数据接收数据
byte b[] = new byte[1024];
int len = is.read(b);
String text = new String(b, 0, len);
//打印到控制台
System.out.println(ip + ":" + text);
//关闭资源
st.close();
ss.close();
}
}