这就是一个简单的socket编程的实例,大道理就不说了,直接上代码,有代码才有真相。具体见代码里的注释。
服务器端:
package com.socket.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class P2PServer {
private ServerSocket server;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public P2PServer() {
try {
try {
// 创建一个ServerSocket在指定端口监听客户请求
server = new ServerSocket(8099);
} catch (Exception e) {
System.out.println("can not listen to:" + e);
}
try {
// 使用accept()阻塞等待客户请求,有客户
socket = server.accept();
// 请求到来则产生一个Socket对象,并继续执行
} catch (IOException e) {
System.out.println("Error." + e);
// 出错,打印出错信息
}
/**
* 接收客户端写入的信息
*/
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("from Client:" + in.readLine());
/**
* 将信息输出到客户端
*/
String line = "当然没问题";
System.out.println("from server to Client:" + line);
// 由Socket对象得到输出流,并构造PrintWriter对象
out = new PrintWriter(socket.getOutputStream());
// 向客户端输出该字符串
out.println(line);
// 刷新输出流,使Client马上收到该字符串
out.flush();
out.close(); // 关闭Socket输出流
in.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
server.close(); // 关闭ServerSocket
} catch (Exception e) {
System.out.println("Error:" + e);
}
}
public static void main(String[] args) {
new P2PServer();
}
}
客户端:
package com.socket.client;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class P2PClient {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public P2PClient() {
try {
// 准备发送给服务器端的信息
String readline="hello ,服务端.我想请求你,可以吗 ";
/**
* 向服务器端发信息
*/
// 向XXX(可以使域名或IP地址,具体参见api)的8099端口发出客户请求
socket = new Socket("localhost", 8099);
// 由Socket对象得到输出流,并构造PrintWriter对象
out = new PrintWriter(socket.getOutputStream());
// 将readline字符串输出到Server
out.println(readline);
// 刷新输出流,使Server马上收到该字符串
out.flush();
/**
* 读取从服务器端返回信息
*/
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 从Server读入一字符串,并打印到标准输出上
System.out.println("from Server:" + in.readLine());
out.close(); // 关闭Socket输出流
in.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
} catch (Exception e) {
System.out.println("Error" + e); // 出错,则打印出错信息
}
}
public static void main(String[] args) {
new P2PClient();
}
}
分享到:
相关推荐
针对我的一篇博文 http://blog.csdn.net/lcprogram/article/details/7738068 的一个简单的Socket实例代码
自己做的一个C#socket简单实例,方便新手刚开始学习SOCKET的时候快速入门,通过简单的小程序了解socket
可运行socket实例
Socket 简单实现tcp,udp数据传输。Socket 简单实现tcp,udp数据传输。
c# socket编程实例 c# socket编程实例
简单的Socket的聊天程序实例 用C#完成 模拟IPMSG 不过我也是新手 只实现了聊天功能 TCP协议
这是android socket通信的实例程序,具体请参考: http://blog.csdn.net/htttw/article/details/7574372
Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,编程实例Socket,...
c# Socket实例
windows下socket实例,服务器与客户端相互通信,server client
SOCKET简单聊天实例.rar 初学TCP SOCKET的程序员一定要先研究一下
C#实现Socket简单实例
C# 多线程socket 实例,采用多线程设计的聊天室源码
简单的socket实例,资源中有两个程序,一个发送一个接收,直接运行项目即可进行接收发送端对话。对socket有兴趣的同学可以蛮看下,了解下通信过程。代码比较简单,有一点基础的人基本上都可以看得懂,代码还不是很...
android socket 编程实例 客户端是android应用程序, socket服务器端使用java作为服务器
C# Socket服务实例
Java Socket实例(服务器多线程) 自己写的代码
Linux网络编程 TCP socket实例代码 小白终结者
C#_SOCKET编写的简单聊天通信程序(客户端+服务端)
这是一个简单的实例,在eclipse中打开,适合入门的使用,复杂的功能需要自己开发