JAVA系列课程讲座一:使用Socket通信实现网络通信程序(TCP方式)
2017-07-12 11:26
896 查看
开发网络通信软件,如QQ,阿里旺旺等即时通讯软件时,Socket通信是必备的基础知识,今天跟大家谈谈Socket通信中TCP方式通信的软件开发步骤及主要代码讲解:
第一步:开发服务器端程序Server.java,源代码如下:
package T16;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
//服务器端程序
public static void main(String[] args) {
/**
* 1.创建服务器端ServerSocket,指定端口,有多块网卡时可以指定IP
* 参数1:端口
* 参数2:等待排队的客户端数量
*/
try {
//1.创建服务器端ServerSocket
ServerSocket serverSocket = new ServerSocket(8888,5);
System.out.println("服务器启动成功:"+serverSocket.toString());
//2.等待客户连接
Socket clientSocket = serverSocket.accept();
System.out.println("有客户来,请接客...........");
//3.绑定输入流
InputStream is = clientSocket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(
b583
isr);
//4.绑定输出流
OutputStream os = clientSocket.getOutputStream();
PrintStream ps = new PrintStream(os);
//5.接收数据
System.out.println("服务器端接收:"+br.readLine());
//6.发送数据
String str = "欢迎连接到本服务器.";
ps.println(str);
//7.关闭socket通信
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
第二步:开发客户端程序Client.java,源代码如下:
package T16;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Calendar;
public class Client {
/**
* 客户端程序:
* 1.指定服务器的IP地址;
* 2.指定服务器的端口;
*
* */
public static void main(String[] args) {
try {
//1.创建客户端Socket;
Socket socket = new Socket("127.0.0.1",8888);
System.out.println("连接服务器成功....");
//2.绑定输入输出流
OutputStream os = socket.getOutputStream();
PrintStream ps = new PrintStream(os);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
//3.发送数据
ps.println("我是客户端,请求连接...");
//4.接收数据
System.out.println("客户端接收服务器数据:"+br.readLine());
//5.关闭Socket
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
第三步:先运行服务器端程序,再运行客户端程序,可以看到网络传输后的打印结果
说明:该程序是一个比较简单的入门级代码,整个程序只能进行一次网络通信,如果需要做成一个可以不断的通信软件的软件,还要用到多线程,IO流操作,数据库操作等诸多技术综合应用,如果大家有兴趣可以看看我的java从入门到精通+QQ即时通讯软件项目实训的教学视频,链接地址:http://edu.csdn.net/course/detail/2981
第一步:开发服务器端程序Server.java,源代码如下:
package T16;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
//服务器端程序
public static void main(String[] args) {
/**
* 1.创建服务器端ServerSocket,指定端口,有多块网卡时可以指定IP
* 参数1:端口
* 参数2:等待排队的客户端数量
*/
try {
//1.创建服务器端ServerSocket
ServerSocket serverSocket = new ServerSocket(8888,5);
System.out.println("服务器启动成功:"+serverSocket.toString());
//2.等待客户连接
Socket clientSocket = serverSocket.accept();
System.out.println("有客户来,请接客...........");
//3.绑定输入流
InputStream is = clientSocket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(
b583
isr);
//4.绑定输出流
OutputStream os = clientSocket.getOutputStream();
PrintStream ps = new PrintStream(os);
//5.接收数据
System.out.println("服务器端接收:"+br.readLine());
//6.发送数据
String str = "欢迎连接到本服务器.";
ps.println(str);
//7.关闭socket通信
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
第二步:开发客户端程序Client.java,源代码如下:
package T16;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Calendar;
public class Client {
/**
* 客户端程序:
* 1.指定服务器的IP地址;
* 2.指定服务器的端口;
*
* */
public static void main(String[] args) {
try {
//1.创建客户端Socket;
Socket socket = new Socket("127.0.0.1",8888);
System.out.println("连接服务器成功....");
//2.绑定输入输出流
OutputStream os = socket.getOutputStream();
PrintStream ps = new PrintStream(os);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
//3.发送数据
ps.println("我是客户端,请求连接...");
//4.接收数据
System.out.println("客户端接收服务器数据:"+br.readLine());
//5.关闭Socket
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
第三步:先运行服务器端程序,再运行客户端程序,可以看到网络传输后的打印结果
说明:该程序是一个比较简单的入门级代码,整个程序只能进行一次网络通信,如果需要做成一个可以不断的通信软件的软件,还要用到多线程,IO流操作,数据库操作等诸多技术综合应用,如果大家有兴趣可以看看我的java从入门到精通+QQ即时通讯软件项目实训的教学视频,链接地址:http://edu.csdn.net/course/detail/2981
相关文章推荐
- JAVA系列课程讲座二:使用Socket通信实现简单聊天通信程序(UDP方式)
- Java系列讲座二:Socket网络通信实现聊天软件项目讲解(UDP)
- Java系列讲座一:TCP方式Socket通信案例讲解
- Java系列讲座二:Socket网络通信实现聊天软件项目讲解(UDP)
- Java TCP使用Socket进行网络通信(4)之往返发送
- java分布式开发TCP/IP NIO无阻塞 Socket((基于消息方式实现系统间的通信) )(转)
- 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
- Java网络编程——使用NIO实现非阻塞Socket通信
- Java网络编程——使用NIO实现非阻塞Socket通信
- Java TCP使用Socket进行网络通信(3)
- 使用JAVA实现Socket通信,TCP、UDP简析。
- 使用JAVA实现Socket通信,TCP、UDP简析。
- 【java面试系列之网络编程】TCP和UDP的区别、TCP协议的三次握手和四次挥手、TCP协议的通信状态、网络编程时的同步、异步、阻塞、非阻塞、进程间的通信方式、TCP的流量控制和拥塞控制
- java通过Socket实现TCP网络通信
- 网络编程_TCP_Socket通信_聊天室_私聊_构思_实现JAVA193-194
- 12-使用java5条件阻塞condition实现线程间通信-实现线程间通信方式(2)
- Java UDP使用Socket进行网络通信(0)
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- Java网络编程之(三): TCP协议使用NIO实现非阻塞Soket通信