zoukankan      html  css  js  c++  java
  • 用Socket创建一个聊天窗口

    我们将里面的IP地址  例如 192.168.2.143改成192.168.2.255就是将内容发送给192.168.2.(0-254)里面的所有人

    package Intnet;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.net.SocketException;
    import java.net.UnknownHostException;
    import java.security.interfaces.DSAKey;
    
    public class Thresend implements Runnable {
    
    	private DatagramSocket send;
    	
    	
    	public Thresend(DatagramSocket send) {
    		super();
    		this.send = send;
    	}
    
    
    	@Override
    	public void run() {
    		
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		
    		String line = null;
    		try {
    			while((line = br.readLine()) != null)
    			{
    				byte buf[] = line.getBytes();
    				try {
    					DatagramPacket dp = new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.2.255"),1150);
    					send.send(dp);
    					if(line.equals("再见臭弟弟"))break;
    				} catch (UnknownHostException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    
    }
    
    
    package Intnet;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;
    
    public class Threrece implements Runnable {
    
    	private DatagramSocket rece;
    	
    	
    
    	public Threrece(DatagramSocket rece) {
    		super();
    		this.rece = rece;
    	}
    
    
    
    	@Override
    	public void run() {
    		// TODO Auto-generated method stub
    		
    		while(true)
    		{
    			byte buf[] = new byte [1024];
    			DatagramPacket dp = new DatagramPacket(buf, buf.length);
    			try {
    				rece.receive(dp);
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			
    			String ip = dp.getAddress().getHostAddress();
    			int port = dp.getPort();
    			String text = new String(dp.getData(),0,dp.getLength());
    			
    			System.out.println(ip + ":" + port + ":" + text);
    			
    		}
    	}
    
    }
    
    
    package Intnet;
    
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;
    
    public class Thredemo {
    
    	public static void main(String[] args) throws Exception {
    		// TODO Auto-generated method stub
    		DatagramSocket send = new DatagramSocket();
    		DatagramSocket rece = new DatagramSocket(1150);
    		
    		Thresend s = new Thresend(send);
    		Threrece r = new Threrece(rece);
    		
    		new Thread(s).start();
    		new Thread(r).start();
    		
    	}
    
    }
    

      

  • 相关阅读:
    android openGL ES2 一切从绘制纹理開始
    HTML5 界面元素 Canvas 參考手冊
    python进阶十_正則表達式(一)
    HDU 3016 Man Down(线段树)
    android 自己定义dialog并实现失去焦点(背景透明)的功能
    上海传智程序员携手设计狮美女雨中烧烤!!
    vim visual操作备忘
    MySQl Study学习之--MySQl二进制日志管理
    Android View measure (三) 经常用法
    Analyze提示:Value stored to "***"is never read
  • 原文地址:https://www.cnblogs.com/WINDZLY/p/11919063.html
Copyright © 2011-2022 走看看