文档章节

socket编程

chenruibing
 chenruibing
发布于 2015/06/14 19:32
字数 756
阅读 21
收藏 0
点赞 0
评论 0

ip标识一台计算机,端口则是标识一个应用程序。

/*
网络层就是给定要去的ip地址。。。
通过物理层传播出去,网线就是标准的物理层设备。。。。。。光纤和无线也是。。。
Scoket就是插口。。。。。。
每一应用程序都有这样一个插口,通过插口调用底层资源来通信。。。
想要通信就一定要有插口。。。
网络编程就是Scoket编程。。。
reciver是阻塞方法,Readline也是阻塞方法。。。

Ip地址最后一段一般都是1到254   0和255是不能使用的,0一般代表的是一个网络段,255代表的则是广播段。。。。。。

ip标识一台计算机,端口则是标识一个应用程序。。。。。。
*/
import java.net.*;
import java.io.*;
class anli
{
	public static void main (String[] args)throws Exception  //网络编程的使用一定要抛出异常的。。。
	{
		//oftenUse();
		Upddemo();
	}
	public static void Upddemo()throws Exception
	{
		DatagramSocket ds = new DatagramSocket();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String line = null;
		while((line = br.readLine())!= null)
		{
			if("over".equals(line))
			{
				break;
			}
			byte[] bt = line.getBytes();
			DatagramPacket dp = new DatagramPacket(bt,bt.length,InetAddress.getByName("192.168.109.119"),1000); //1000是发送的端口
			ds.send(dp);
		}
		//byte[] bt = "chenruibing".getBytes();
		
		ds.close();
	}
	/*public static void oftenUse()throws Exception
	{
		InetAddress i = InetAddress.getLocalHost(); //静态方法,返回的是计算机的名字和ip值
		//InetAddress i = InetAddress.getByName("192.168.109.119");  //返回的也只是ip地址,可以查找局域网或者当时正处于网络上的主机
		//InetAddress[] i = InetAddress.getAllByName("WCL2BX2RZXDQBKM");//由主机名字,返回其 IP 地址所组成的数组,返回值是数组
		sop(i.toString());
		sop(i.getHostName());  //获取主机名
		sop(i.getHostAddress());//获取ip
		for(InetAddress j : i)
		{
			sop(j);
		}
	}*/
	public static void sop (Object obj)
	{
		System.out.println(obj);
	}
}


class rec //接收端一般是不关闭的
{
	public static void main (String[] args)throws Exception
	{
		DatagramSocket ds = new DatagramSocket(1000);  //接受方要监听端口。。。
		while(true)
		{
			byte[] bt = new byte[1024];  //用来存放发送过来的数据
			DatagramPacket dp = new DatagramPacket(bt,bt.length);//数组不用加括号,字符串才要用括号
			ds.receive(dp);		//好像并不是一定要接受的。。。
			String ip = dp.getAddress().getHostAddress();
			String data = new String(dp.getData(),0,dp.getLength());//获取缓冲区的数据其实就是获取发过来的数据
			int port = dp.getPort();
			sop(ip+"::"+data+"::"+port); //port指定端口是随机的,因为在发送端哪里没有指定一个确定的发送端口。。。
		}
		
	}
	public static void sop (Object obj)
	{
		System.out.println(obj);
	}
	
}

oneThread to conversation

import java.io.*;
import java.net.*;
public class anli
{
	public static void main (String[] args)throws Exception
	{
		DatagramSocket send = new DatagramSocket();
		DatagramSocket rec = new DatagramSocket(10086);
		new Thread(new sendclass(send)).start();
		new Thread(new recclass(rec)).start();
	}

}
class sendclass implements Runnable
{
	private DatagramSocket ds;
	sendclass(DatagramSocket ds)
	{
		this.ds = ds;
	}
	public void run ()
	{
		try
		{
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			String line = null;
			while((line = br.readLine())!=null)
			{
				if("over".equals(line))
					break;
				byte[] bt = line.getBytes();   //以字节的方式传递数据
				DatagramPacket dp = new DatagramPacket(bt,bt.length,InetAddress.getByName("192.168.109.119"),10086);
				ds.send(dp);
			}
			br.close();
			ds.close();
		}
		catch (Exception e)
		{
			throw new RuntimeException ("发送端失败");
		}
	}
}
class recclass implements Runnable
{
	private DatagramSocket ds;
	recclass(DatagramSocket ds)
	{
		this.ds = ds;
	}
	public void run ()
	{
		try
		{
			while(true)
			{
				byte[] bt = new byte[1024];
				DatagramPacket dp = new DatagramPacket(bt,bt.length);//接受包
				ds.receive(dp);
				String ip = dp.getAddress().getHostAddress();  //使用接受包来获取数据   因为数据都是放在接受包里面的。。。
				String data = new String(dp.getData(),0,dp.getLength());
				sop(ip+"::"+data);
			}
		}
		catch (Exception e)
		{
			throw new RuntimeException ("接受端失败");
		}
	}
	public static void sop (Object obj)
	{
		System.out.println(obj);
	}
}



© 著作权归作者所有

共有 人打赏支持
chenruibing
粉丝 12
博文 203
码字总数 109101
作品 0
潮州
C#网络编程系列文章(六)之Socket实现同步UDP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编...

zhujunxxxxx
2015/03/16
0
0
C#网络编程系列文章(五)之Socket实现异步UDP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编...

zhujunxxxxx
2015/03/15
0
0
Linux网络编程:什么是Linux下的网络编程?

想知道Linux下的网络编程培训×××?先来了解一下什么是Linux下的网络编程吧!Linux下的网络编程指的是socket套接字编程,入门比较简单。在学校里学过一些皮毛,平时就是自学玩,没有见识过...

长沙千锋
05/23
0
0
137-基本的网络编程总结

网络编程远远不止前面所提到的那些内容。在 Linux 编程中,只是非常简单的介绍了下基本的 socket 编程。如果要讲完整个网络编程,需要整整一本书的内容。 但是,前面的文章提到的一些基础概念...

q1007729991
2017/04/03
0
0
Socket编程 之 Socket函数简介

说明:文章截选自实验楼教程【PHP Socket编程】,该教程由用户“水煮牛肉”发布在实验楼上,未经允许,禁止转载; Socket简介 许多第一次接触 Socket 编程的同学并不知道 Socket 是什么意思,...

实验楼
2017/12/19
0
0
C#网络编程系列文章(二)之Socket实现同步TCP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编...

zhujunxxxxx
2015/03/14
0
0
Android NDK Socket(POSIX Socket Api)编程

socket简介 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 tcpsocket和udpsocket的具体实现 讲了这么久,终于要开始讲socket的具体实现了,iOS提供了Socket网络编程的接...

IamOkay
2016/04/10
271
0
关于socket编程

各种后台招聘一般都有熟悉socket编程一个要求。之后大概了解了一下socket编程。基本上各种帖子都是一页纸就说完了。socket,bind,listen,connect,acept。疑惑的地方是,这就是socket编程的...

ericsoul
2013/05/09
464
11
TCP/IP编程学习01

网络编程就是编写使多台计算机联网交互数据。操作系统会提供名为socket(套接字)的部件,socket是网络数据传输的设备软件,所以说网络编程又可以成为socket编程。 在此借用书中打电话例子,...

乔三爷
2015/09/10
57
0
C#网络编程系列文章(一)之Socket实现异步TCP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编...

zhujunxxxxx
2015/03/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
22分钟前
0
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
29分钟前
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
33分钟前
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
36分钟前
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
0
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0
iptables规则备份和恢复、firewalld的9个zone以及操作和service的操作

保存以及备份iptalbes规则 设定了的防火墙规则要进行保存,否则系统重启后这些规则就没有了,使用命令 ”service iptables save ” 会把设定好的防火墙规则保存到文件/etc/sysconfig/iptabl...

黄昏残影
昨天
0
0
k8s image

k8s.gcr.io/kube-apiserver-amd64:v1.11.0k8s.gcr.io/kube-controller-manager-amd64:v1.11.0k8s.gcr.io/kube-scheduler-amd64:v1.11.0k8s.gcr.io/kube-proxy-amd64:v1.11.0k8s.gcr.......

分秒
昨天
0
0
数据结构--排序

这篇博客包含了数据结构中多种的排序算法: (1)简单选择:第一趟在A[0]~A[n-1]之间找到最小的,与A[0]进行交换,之后在A[1]~A[n-1]之间进行。。。第i趟在A[i-1]~A[n-1]之间找到最小的,最后...

wangxuwei
昨天
1
0
一名3年工作经验的java程序员应该具备的职业技能

一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容。我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价、拿到的薪...

老道士
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部