Socket通讯实例
2007-05-05 18:54
162 查看
服务器端代码:
/**//*
* SocketConn.java
*
* Created on 2007年5月4日, 下午10:04
*
* 桂林电子科技大学 马如林
*
* Socket 通讯 建立Agent
*/
package com.mrl;
import java.io.*;
import java.net.*;
/** *//**
*
* @author 马如林
*/
public class SocketConn ...{
/** *//** Creates a new instance of SocketConn */
public SocketConn() ...{
}
public static void main(String args[])
...{
String str = "";
System.out.print("This is a socket test.");
try
...{
ServerSocket server = new ServerSocket(1234);
System.out.println("Started: " + server);
Socket socket = server.accept();
System.out.println("Socket: " + socket);
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(isr);
PrintStream out = new PrintStream(fOut);
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
while(true)
...{
System.out.println("等待客户端的消息");
str = in.readLine();
System.out.println(str);
System.out.println("给客户端发送:");
str = userin.readLine();
out.println(str);
if(str.equals("end"))
...{
socket.close();
break;
}
}
socket.close();
server.close();
}
catch (Exception e)
...{
e.getStackTrace();
System.out.print("异常:"+e);
}
finally
...{
}
}
}
客户端代码:
/**//*
* MultiUser.java
*
* Created on 2007年5月4日, 下午10:29
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package socket;
import java.net.*;
import java.io.*;
/** *//**
*
* @author rulinma
*/
public class MultiUser extends Thread
...{
private Socket socket;
public static void main(String[] args)throws IOException
...{
InetAddress addr = InetAddress.getByName("202.193.75.198");
Socket socket = new Socket(addr,1234);
System.out.println("Socket:" + socket);
try
...{
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(isr);
PrintStream out = new PrintStream(fOut);
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
while(true)
...{
System.out.println("发送:");
String str = userin.readLine();
out.println(str);
if(str.equals("end"))
...{
break;
}
System.out.println("等待服务器消息:");
String strR = in.readLine();
System.out.println("服务器端数据:" + strR);
if(strR.equals("end"))
...{
break;
}
}
socket.close();
}
catch(IOException ex)
...{
}
finally
...{
}
}
}
调试: 下面的不是完全匹配.就是个大概.
服务器端:
This is a socket test.Started: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=1234]
Socket: Socket[addr=/202.193.75.215,port=1918,localport=1234]
等待客户端的消息
How are U?
给客户端发送:
Fine,你呢?
等待客户端的消息
Very good!
给客户端发送:
en.
等待客户端的消息
end
给客户端发送:
end
客户端:
Socket:Socket[addr=/202.193.75.198,port=1234,localport=1784]
发送:
How are U?
等待服务器消息:
服务器端数据:Fine,你呢?
发送:
Fine.
等待服务器消息:
服务器端数据:Very good!
发送:
en.
等待服务器消息:
end
服务器端数据:end
测试通过!
下面的是一个读取文件并传输的实例;
服务器端:
/**//*
* SocketConn.java
*
* Created on 2007年5月4日, 下午10:04
*
* 桂林电子科技大学 马如林
*
* Socket 通讯 建立Agent
*/
package com.mrl;
import java.io.*;
import java.net.*;
/** *//**
*
* @author 马如林
*/
public class SocketConn ...{
/** *//** Creates a new instance of SocketConn */
public SocketConn() ...{
}
public static void main(String args[])
...{
String str = "";
System.out.print("This is a socket test.");
try
...{
ServerSocket server = new ServerSocket(1234);
System.out.println("Started: " + server);
// Socket开始连接
Socket socket = server.accept();
System.out.println("Socket: " + socket);
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(isr);
PrintStream out = new PrintStream(fOut);
// 用户输入消息
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
// 端口有消息进入循环
while(true)
...{
System.out.println("等待客户端的消息");
// 读取客户端送来的数据
str = in.readLine();
System.out.println(str);
if(str.equals("end"))
...{
socket.close();
break;
}
}
socket.close();
server.close();
}
catch (Exception e)
...{
e.getStackTrace();
System.out.print("异常:"+e);
}
finally
...{
}
}
}
客户端:
基本思想:就是将文件转换为流输出>.
代码在另外一台机上,明天贴:
/**//*
* MultiUser.java
*
* Created on 2007年5月4日, 下午10:29
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package socket;
import java.net.*;
import java.io.*;
/** *//**
*
* @author rulinma
*/
public class MultiUser extends Thread
...{
public static void main(String[] args)throws IOException
...{
InetAddress addr = InetAddress.getByName("202.193.75.198");
Socket socket = new Socket(addr,1234);
System.out.println("Socket:" + socket);
try
...{
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(new FileReader("D:/test.txt"));
PrintStream out = new PrintStream(fOut);
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
String str = "" ;
while((str = in.readLine()) != null)
...{
System.out.println("发送:");
...{
out.println(str);
if(str.equals("end"))
...{
break;
}
}
}
// socket.close();
}
catch(IOException ex)
...{
}
finally
...{
}
}
}
下面需要研究如何并行通讯等.
/**//*
* SocketConn.java
*
* Created on 2007年5月4日, 下午10:04
*
* 桂林电子科技大学 马如林
*
* Socket 通讯 建立Agent
*/
package com.mrl;
import java.io.*;
import java.net.*;
/** *//**
*
* @author 马如林
*/
public class SocketConn ...{
/** *//** Creates a new instance of SocketConn */
public SocketConn() ...{
}
public static void main(String args[])
...{
String str = "";
System.out.print("This is a socket test.");
try
...{
ServerSocket server = new ServerSocket(1234);
System.out.println("Started: " + server);
Socket socket = server.accept();
System.out.println("Socket: " + socket);
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(isr);
PrintStream out = new PrintStream(fOut);
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
while(true)
...{
System.out.println("等待客户端的消息");
str = in.readLine();
System.out.println(str);
System.out.println("给客户端发送:");
str = userin.readLine();
out.println(str);
if(str.equals("end"))
...{
socket.close();
break;
}
}
socket.close();
server.close();
}
catch (Exception e)
...{
e.getStackTrace();
System.out.print("异常:"+e);
}
finally
...{
}
}
}
客户端代码:
/**//*
* MultiUser.java
*
* Created on 2007年5月4日, 下午10:29
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package socket;
import java.net.*;
import java.io.*;
/** *//**
*
* @author rulinma
*/
public class MultiUser extends Thread
...{
private Socket socket;
public static void main(String[] args)throws IOException
...{
InetAddress addr = InetAddress.getByName("202.193.75.198");
Socket socket = new Socket(addr,1234);
System.out.println("Socket:" + socket);
try
...{
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(isr);
PrintStream out = new PrintStream(fOut);
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
while(true)
...{
System.out.println("发送:");
String str = userin.readLine();
out.println(str);
if(str.equals("end"))
...{
break;
}
System.out.println("等待服务器消息:");
String strR = in.readLine();
System.out.println("服务器端数据:" + strR);
if(strR.equals("end"))
...{
break;
}
}
socket.close();
}
catch(IOException ex)
...{
}
finally
...{
}
}
}
调试: 下面的不是完全匹配.就是个大概.
服务器端:
This is a socket test.Started: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=1234]
Socket: Socket[addr=/202.193.75.215,port=1918,localport=1234]
等待客户端的消息
How are U?
给客户端发送:
Fine,你呢?
等待客户端的消息
Very good!
给客户端发送:
en.
等待客户端的消息
end
给客户端发送:
end
客户端:
Socket:Socket[addr=/202.193.75.198,port=1234,localport=1784]
发送:
How are U?
等待服务器消息:
服务器端数据:Fine,你呢?
发送:
Fine.
等待服务器消息:
服务器端数据:Very good!
发送:
en.
等待服务器消息:
end
服务器端数据:end
测试通过!
下面的是一个读取文件并传输的实例;
服务器端:
/**//*
* SocketConn.java
*
* Created on 2007年5月4日, 下午10:04
*
* 桂林电子科技大学 马如林
*
* Socket 通讯 建立Agent
*/
package com.mrl;
import java.io.*;
import java.net.*;
/** *//**
*
* @author 马如林
*/
public class SocketConn ...{
/** *//** Creates a new instance of SocketConn */
public SocketConn() ...{
}
public static void main(String args[])
...{
String str = "";
System.out.print("This is a socket test.");
try
...{
ServerSocket server = new ServerSocket(1234);
System.out.println("Started: " + server);
// Socket开始连接
Socket socket = server.accept();
System.out.println("Socket: " + socket);
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(isr);
PrintStream out = new PrintStream(fOut);
// 用户输入消息
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
// 端口有消息进入循环
while(true)
...{
System.out.println("等待客户端的消息");
// 读取客户端送来的数据
str = in.readLine();
System.out.println(str);
if(str.equals("end"))
...{
socket.close();
break;
}
}
socket.close();
server.close();
}
catch (Exception e)
...{
e.getStackTrace();
System.out.print("异常:"+e);
}
finally
...{
}
}
}
客户端:
基本思想:就是将文件转换为流输出>.
代码在另外一台机上,明天贴:
/**//*
* MultiUser.java
*
* Created on 2007年5月4日, 下午10:29
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package socket;
import java.net.*;
import java.io.*;
/** *//**
*
* @author rulinma
*/
public class MultiUser extends Thread
...{
public static void main(String[] args)throws IOException
...{
InetAddress addr = InetAddress.getByName("202.193.75.198");
Socket socket = new Socket(addr,1234);
System.out.println("Socket:" + socket);
try
...{
InputStream fIn = socket.getInputStream();
OutputStream fOut = socket.getOutputStream();
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader in = new BufferedReader(new FileReader("D:/test.txt"));
PrintStream out = new PrintStream(fOut);
InputStreamReader userisr = new InputStreamReader(System.in);
BufferedReader userin = new BufferedReader(userisr);
String str = "" ;
while((str = in.readLine()) != null)
...{
System.out.println("发送:");
...{
out.println(str);
if(str.equals("end"))
...{
break;
}
}
}
// socket.close();
}
catch(IOException ex)
...{
}
finally
...{
}
}
}
下面需要研究如何并行通讯等.
相关文章推荐
- python socket多线程通讯实例分析(聊天室)
- socket通讯实例 (objective-c)
- Socket通讯实例-基本Socket
- 即时通讯下数据粘包、断包处理实例(基于CocoaAsyncSocket)
- 转帖:麻雀虽小,五脏俱全-C# 创建windows服务、socket通讯实例
- 运维人的Python有趣小程序,Socket通讯简单实例
- Tcp Socket异步通讯实例
- Socket 服务端使用多线程实现多客户端通讯实例
- C# 创建windows服务、socket通讯实例 (转载 )
- Qt5 TcpSocket 客户端/服务器 通讯实例
- php socket客户端和服务端互相通讯实例
- 麻雀虽小,五脏俱全-C# 创建windows服务、socket通讯实例(学习)
- C# Socket通讯实例
- java SSL安全socket的通讯实例-java学习笔记(4)
- Android Socket接口实现即时通讯实例代码
- java SSL安全socket的通讯实例
- node.js和socket.io纯js实现的即时通讯实例分享
- QT单实例应用,使用QLocalSocket进行进程通信,不同运行权限下运行的同一个进程通讯失败,报错 “QLocalSocket::SocketAccessError”
- 在windows下用C语言写socket通讯实例
- Nodejs+Socket.io实现通讯实例代码