今天刚刚接触到TCP网络通信,下面就从最简单的程序写起,了解它的基本概念后再继续深入写后面的程序
简单程序:
首先我们要创建一个服务器的文件,代码如下:
public class SverSocket {
public static void main(String[] args) {
try {
ServerSocket ss=new ServerSocket(9990);
System.out.println("服务器套接字创建成功");
System.out.println("服务器等待连接。。。");
Socket s=ss.accept();
System.out.println("与客户端连接成功");
s.close();
ss.close();
} catch (IOException e) {}
}
}
在打印“服务器等待连接
。。”后服务器会一直停在Socket s=ss.accept();等待客户端的连接
再创建个客户端的文件,代码如下:
public class CliSocket {
public static void main(String[] args) {
try {
Socket s=new Socket("192.168.0.106", 9990);
s.close();
} catch (Exception e) {}
}
}
打印结果:是将服务器的那几句话都打印出来
接下来就是要用到数据流:
服务器程序:
public class SerSocket {
static ServerSocket ss=null;
static Socket s=null;
static String str=null;
static DataInputStream in=null;
static DataOutputStream out=null;
public static void main(String[] args) {
try {
ss=new ServerSocket(6666);//实例化套接字对象
System.out.println("实例化服务套接字成功");
System.out.println("等待客户端里连接。。。。");
s=ss.accept();
in=new DataInputStream(s.getInputStream());
out=new DataOutputStream(s.getOutputStream());
//进入循环
while(true){
str=in.readUTF();//读取客户放入连接中
out.writeUTF(str);
System.out.println("服务器收到"+str);
try {
Thread.sleep(1000);//线程休眠1秒
} catch (InterruptedException e) {}
in.close();
out.close();
s.close();
ss.close();
}
} catch (IOException e) {}
}
}
客户端程序代码:
public class CliSocket {
static String str=null;
static Socket s;
static DataOutputStream out=null;
static DataInputStream in=null;
public static void main(String[] args) {
try {
s=new Socket("192.168.0.106", 6666);
in=new DataInputStream(s.getInputStream());
out=new DataOutputStream(s.getOutputStream());
out.writeUTF("我是客户端");
while(true){
str=in.readUTF();
out.writeUTF(str);
System.out.println("客户端收到"+str);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
in.close();
out.close();
s.close();
}
} catch (IOException e) {}
}
}
运行结果:
基础的就到这,笔者刚学有不足之处还希望大家多多留言,一起讨论。