Java中利用Socket进行通信
2014-10-09 14:07
417 查看
一.客户端套接字
Socket的构造方法是Socket(String host,int port),参数host是服务器的IP地址,port是一个端口号。建立套接字对象可能发生IOException,应这样连接
二.服务器端套接字
服务器端必须建立一个ServerSocket对象,该对象通过客户端的套接字和服务器端的一个套接字连接起来
ServerSocket的构造方法是ServerSocket(int port).poet必须和客户端的呼叫端口号一致。同样建立ServerSocket对象时
会发生io异常,应这样建立
而且客户端的输出流指向服务端的输入流,服务端的输出流指向客户端的输入流。
三.一个简单的例子
客户端代码:Client.java
Socket的构造方法是Socket(String host,int port),参数host是服务器的IP地址,port是一个端口号。建立套接字对象可能发生IOException,应这样连接
<span style="font-family:KaiTi_GB2312;font-size:18px;">try { socket = new Socket("http://192.168.1.1",888); } catch (IOException e) {}</span>建立连接之后,调用getInputStream()获得一个输入流,调用getOutputStream()获得一个输出流。
二.服务器端套接字
服务器端必须建立一个ServerSocket对象,该对象通过客户端的套接字和服务器端的一个套接字连接起来
ServerSocket的构造方法是ServerSocket(int port).poet必须和客户端的呼叫端口号一致。同样建立ServerSocket对象时
会发生io异常,应这样建立
<span style="font-family:KaiTi_GB2312;font-size:18px;">try { serverSocket = new ServerSocket(888); } catch(IOException e) { }</span>当服务器ServerSocket对象建立后就可以使用方法accept()将客户端的套接字和服务器端的套接字连接起来,代码如下
<span style="font-family:KaiTi_GB2312;font-size:18px;">try { socketOnServer = serverSocket.accept(); } catch (IOException) { }</span>同样,建立连接之后,调用getInputStream()获得一个输入流,调用getOutputStream()获得一个输出流。
而且客户端的输出流指向服务端的输入流,服务端的输出流指向客户端的输入流。
三.一个简单的例子
客户端代码:Client.java
<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.Socket; public class Client { public static void main(String args[]) { String mess[] = {"Socke连接第一步:","Socket连接第二步:","Socket连接第三步:"}; Socket mySocket; DataInputStream in = null; DataOutputStream out = null; try { //第一步:建立socket mySocket = new Socket("127.0.0.1",2010); //第二步:转化输入输出流 in = new DataInputStream(mySocket.getInputStream()); out = new DataOutputStream(mySocket.getOutputStream()); //第三步:传输数据 for(int i=0;i<mess.length;i++) { out.writeUTF(mess[i]); String s = in.readUTF(); System.out.println("客户端收到服务器的回答:"+s); Thread.sleep(500); } } catch(Exception e) {} } } </span>服务端代码:Server.java
<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String args[]) { String answer[] = {"通过端口号建立ServerScoket","用ServerSocket调用accept生成一个普通socket","传输数据"}; ServerSocket serverSocket = null; Socket socketOnServer = null; DataInputStream in = null; DataOutputStream out = null; try { //第一步:建立ServerSocket对象 serverSocket = new ServerSocket(2010); } catch (IOException e) {} try { System.out.println("等待客户呼叫"); //第二步:生成一个socket对象 socketOnServer = serverSocket.accept(); //第三步:转化输入输出流对象 in = new DataInputStream(socketOnServer.getInputStream()); out = new DataOutputStream(socketOnServer.getOutputStream()); //第四步:传输数据 for(int i=0;i<answer.length;i++) { String s =in.readUTF(); System.out.println("服务器接收到客户的提问:"+s); out.writeUTF(answer[i]); Thread.sleep(500); } } catch (Exception e) {} } } </span>执行结果:
相关文章推荐
- FLEX利用Socket与java进行通信
- 利用Socket进行Java网络编程
- 用java写的一个利用socket通信的C/S小例子
- c#和java语言利用webservice进行通信浅析
- Android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
- android native c java进行本地socket通信
- android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
- java与c/c++进行socket通信的一些问题
- 在Java与C程序间进行socket通信的讨论
- Flex与java进行socket通信完成以断点续传方式的文件上传
- java与c/c++进行socket通信的一些问题(2)
- Java 利用套接字Socket实现简单的服务器与客户端通信
- java c++ 进行socket通信对数据包的组装和拆分问题
- android/java 与 c#进行socket通信
- 利用C#进行Socket通信编程之一
- Java 利用套接字Socket实现简单的服务器与客户端通信
- 利用C#进行Socket通信编程之二:一个实例
- 利用Socket进行Java网络编程
- android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
- java与c/c++进行socket通信的一些问题(1)