`

Java.net的ServerSocket与Socket

    博客分类:
  • Java
 
阅读更多

 

ServerSocket类

ServerSocket myListener = new ServerSocket(600);

提供监听服务的端口是600,不同服务之间通过端口来区别。为了随时监听可能的Client端的请求,执行如

 

下语句:

Socket linkSockt = myListener.accept();

这个方法执行将使得Server端处于等待状态,直到接收一个来自Client端的请求,并返回一个与Client通信

 

的Socket对象。Server端与Client端连接后,就实现了相互读写数据,结束通信执行:

myListener.close();

 

Socket类

Client需从Server获取服务时,应创建一个Socket对象:

Socket mySocket = new Socket(host,port);

连通后,利用Socket类方法getOutputStream()获取(write)输出流,和getInputStream()获取(read)输

 

入流。结束通信同样是

mySocket.close();

 

ServerSocket一般仅用于设置端口号和监听,真正进行通信的是Server端的Socket与Client端的Socket,在ServerSocket进行accept后,就将主动权转让给Server端的Socket。



Server端

package com.serversocket.test;

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
	private ServerSocket ss;
	
	public static final int port = 8962;
	
	public MyServer(){
		try{
			ss = new ServerSocket(port);
		}
		catch(IOException e){
			e.printStackTrace();
		}
	}
	
	public void setConnection() throws IOException{
		Socket s;
		OutputStream os;
		try {
			s = ss.accept();
			os = s.getOutputStream();
			os.write("hello".getBytes());
			os.close();
			s.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	public static void main(String[] args) throws IOException{
		MyServer ms = new MyServer();
		ms.setConnection();
	}
	
}




Client端

package com.serversocket.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {
	public static final String IP = "127.0.0.1";
	
	public static int port = 8962;
	
	private Socket s;
	
	public MyClient(){
		try {
			s = new Socket(IP,port);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void setConnection() throws IOException{
		InputStream is;
		try {
			is = s.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			System.out.println(br.readLine());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) throws IOException{
		MyClient mc = new MyClient();
		mc.setConnection();
	}
}


来自网络资料

分享到:
评论

相关推荐

    Android中socket通信简单实现

    Android中socket通信简单实现 socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP。 先上个图: ...import java.net.ServerSocket; import java.net.So

    Chat-Socket-Java:聊天系统ServerSocket e Socket na linguagem Java

    聊天套接字Java版本0.1 ... 客户端实用程序TCP / IP和API java.net,可用于类Socket客户端。 请使用API​​ java.net中的实用程序,以及使用ServerSocket类和本地服务对象类创建的类。 使用线程,可以并行处理界面GUI。

    java网络编程示例

    import java.net.ServerSocket; import java.net.Socket; public class TCPServer { public static void main(String[] args) { try { ServerSocket socket = new ServerSocket(4444); while (true) { ...

    Java聊天室—-多线程实现群聊、私聊、系统消息 (服务端完整代码奉上)

    是不是试了很多次都没有达到自己想要的效果呢? 没关系,看到这你就已经有收获了 文章目录一、动图效果展示二、服务端代码(核心)三...import java.net.ServerSocket; import java.net.Socket; import java.util.conc

    计算机网络实验报告 获取MAC socket通信

    java.net.ServerSocket ss = new java.net.ServerSocket(9000); java.net.Socket sk = ss.accept(); //DataOutputStream 处理数据 数据的输出流 java.io.OutputStream os = new java.io.DataOutputStream( ...

    基于socket手机网络象棋开发

    import java.net.ServerSocket; import java.net.Socket; import java.util.HashMap; import java.util.Map; /** * @author sean * * @since 2009/06/18 * * 1.create serversocket * 2. wait for new ...

    利用Java的Socket网络编程实现小型聊天室

    前言 这个小型的聊天系统我没有用swt去做出界面出来,因为之前用的32位的,现在换了个环境导致之前的包不能用了,只能以控制台进行信息的交互。...import java.net.ServerSocket; import java.net.Soc

    java socketServer socket

    NULL 博文链接:https://201108231856.iteye.com/blog/2034711

    java学习后,用线程做的聊天程序

    import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try{ ServerSocket serversocket=new ServerSocket(8888); while(true) {...

    java上的即时通信

    import java.net.ServerSocket; import java.net.Socket; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax....

    Java Socket常见异常处理

     第1个异常是 java.net.BindException:Address already in use: JVM_Bind。  该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经...

    三步学会Java Socket编程

     以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。...

    用Java实现多线程服务器程序

    客户端软件通常使用java.net包中的核心类Socket与服务器的某个端口建立连接,而服务器程序不同于客户机,它需要初始化一个端口进行监听,遇到连接呼叫,才与相应的客户机建立连接。Java.net包的ServerSocket类包含了...

    用java.swing实现的聊天系统

    import java.net.ServerSocket; import java.net.Socket; import java.util.Collection; import java.util.Date; import java.util.Hashtable; import java.util.Map; import java.util.Set; public class ...

    ServerSocket简单实现

    Socket和ServerSocket类库位于java.net包中。Server Socket用于服务器端,Server Socket通信是建立网络连接时使用的。在 连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个...

    基于JAVA的聊天系统的设计于实现

    在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类java.net.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个...

    java语言编写的 聊天程序

    在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类java.net.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个...

    Java实现远程屏幕监视

    import java.net.ServerSocket; import java.net.Socket; public class Server { public Server() { } public void listen() throws IOException { ServerSocket server = new ServerSocket(8002); ...

    Java Socket 套接字编程经典入门

    java.net包的客户端Socket,服务端ServerSocket; 单线程套接字客户端和服务端的处理; 服务端多线程处理客户端套接字; 带有线程池处理客户端套接字; 不会Socket,有Java基础就能完全理解Socket编程。

Global site tag (gtag.js) - Google Analytics