linux系统UDP的socket通信编程3
我刚开始接触linux下的socket编程,边抄边理解udp socket编程,我的疑问是server不指定IP地址,client的目标IP地址是127.0.0.1,这样就可以通信吗?在同一主机下是不是不能测试?如果server默认绑定本机的IP 地址,那么开启server后,在浏览器中输入127.0.0.1:(相应端口) 也可以得到数据?我的程序如下,没有跑起来,其实我觉得我不会测试,不知道本质所以会有细节漏掉。(使用的系统是ubuntu 11.10 ,编译器GCC ,分别在同一主机下的两个终端中运行生成的.out文件。)提前感谢大家的回答,不管多少,您的回答让一个初学者非常暖心~~
服务器程序
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
 | 
#include<stdio.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#define lport 4567int main(){    int mysock,len;    struct sockaddr_in addr;    int i=0;    char msg[256];    int addr_len;    if((mysock=socket(AF_INET,SOCK_DGRAM,0))<0)    {        perror("error");        exit(1);    }    else    {        printf("socket created.\n");        printf("socket ID: %d\n",mysock);    }    addr_len=sizeof(struct sockaddr_in);    bzero(&addr,sizeof(addr));    addr.sin_family=AF_INET;    addr.sin_port=htons(lport);    addr.sin_addr.s_addr=htonl(INADDR_ANY);    if(bind(mysock,&addr,sizeof(addr))<0)    {        perror("connect");        exit(1);    }    else    {        printf("bind ok.\n");        printf("local port: %d\n",lport);    }    while(1)    {        bzero(msg,sizeof(msg));        len=recvfrom (mysock,msg,sizeof(msg),0,&addr,&addr_len);        printf("%d: ",i);        i++;        printf("message form: %s\n",inet_ntoa(addr.sin_addr));        printf("message: %s\n\n",msg);        sendto(mysock,msg,len,0,&addr,addr_len);    }    return 0;} | 
客户机程序:
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
 | 
#include<stdio.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<fcntl.h>#include<sys/stat.h>#include<sys/types.h>#include<sys/socket.h>#define rport 4567#define rip "127.0.0.1"int main(){    int s,len;    struct sockaddr_in addr;    int addr_len;    char msg[256];    int i=0;    if((s=socket(AF_INET,SOCK_DGRAM,0))<0)    {        perror("error");        exit(1);    }    else    {        printf("socket created.\n");        printf("socket id: %d\n",s);        printf("romote ip: %s\n",rip);        printf("remote port: %d\n",rport);    }    len=sizeof(struct sockaddr_in);    bzero(&addr,sizeof(addr));    addr.sin_family=AF_INET;    addr.sin_port=htons(rport);    addr.sin_addr.s_addr=inet_addr(rip);    while(1)    {        bzero(msg,sizeof(msg));        len=read(STDIN_FILENO,msg,sizeof(msg));        sendto(s,msg,len,0,&addr,addr_len);        printf("\nInput message: %s\n",msg);        len=recvfrom(s,msg,sizeof(msg),0,&addr,&addr_len);        printf("%d :",i);        i++;        printf("received message: %s \n",msg);    }    return 0;} | 
linux系统UDP的socket通信编程3的更多相关文章
- linux系统UDP的socket通信编程2
		
UDP套接字编程范例: server端代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 ...
 - linux系统UDP的socket通信编程
		
发送方: /* * File: main.c * Author: tianshuai * * Created on 2011年11月29日, 下午10:34 * * 主要实现:发送20个文本消息,然后 ...
 - Linux下简单的socket通信实例
		
Linux下简单的socket通信实例 If you spend too much time thinking about a thing, you’ll never get it done. —Br ...
 - linux下C语言socket网络编程简例
		
原创文章,转载请注明转载字样和出处,谢谢! 这里给出在linux下的简单socket网络编程的实例,使用tcp协议进行通信,服务端进行监听,在收到client的连接后,发送数据给client:clie ...
 - 基于TCP和UDP的Socket通信
		
TCP的Socket通信 TCP是面向连接的,安全的协议,它是一对一的关系 server client 上面只是单个客户端同服务器通信,可使用多线程编程实现多个客户端的通信 UDP的Socket通信 ...
 - TCP、UDP、Socket 通信(原)
		
说明:本随笔主要演示自己给自己发送消息例子,分别使用了TCP协议.UDP协议以及socket套接字通信.使用socket套接字了模拟TCP.UDP通信实现原理.其中有些源码都来自<C#高级编程 ...
 - 【转】C# Socket通信编程
		
https://www.cnblogs.com/dotnet261010/p/6211900.html#undefined 一:什么是SOCKET socket的英文原义是“孔”或“插座”.作为进程通 ...
 - linux 系统 UDP 丢包问题分析思路
		
转自:http://cizixs.com/2018/01/13/linux-udp-packet-drop-debug?hmsr=toutiao.io&utm_medium=toutiao.i ...
 - linux系统socket通信编程详解函数
		
linux socket编程之TCP与UDP TCP与UDP区别 TCP---传输控制协议,提供的是面向连接.可靠的字节流服务.当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之 ...
 
随机推荐
- 一款纯css实现的漂亮导航
			
今天给大家分享一款纯css实现的漂亮导航.之前为大家分享过jquery实现的个人中心导航菜单,今天这款也是适合放在个人中心.还带来图标,效果不错.一起看下效果图: 在线预览 源码下载 实现的代码. ...
 - Python内置字典;dict ,set
			
dict and set dict: 键-值 /重复添加 set : 键 / key不能重复 对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容.相反,这些方法会创建新的对象并返 ...
 - C#操作摄像头 实现拍照功能
			
从正式工作以来一直做的都是基于B/S的Web开发,已经很长时间不研究C/S的东西了,但是受朋友的委托,帮他做一下拍照的这么个小功能.其实类似的代码网上有很多,但是真的能够拿来运行的估计也没几个.本来是 ...
 - json格式在ruby和rails中的注意事项
			
#虚拟网络拓扑的json数据 def topodata #@vnic = Vnic.all #flash.now[:notice] = 'Message sent!' #flash.now[:aler ...
 - HTTP API 设计指南(请求部分)
			
为了保证持续和及时的更新,强烈推荐在我的Github上关注该项目,欢迎各位star/fork或者帮助翻译 前言 这篇指南介绍描述了 HTTP+JSON API 的一种设计模式,最初摘录整理自 Hero ...
 - npm常用命令汇总
			
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准. 有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm install ...
 - 20 个 jQuery 和 CSS 的文本特效插件
			
Jumble Text Effect Plugins Demo || Download Vticker – Vertical News Ticker With JQuery Plugin Demo | ...
 - 【转】浅谈.net remoting 与webservice
			
1. .NET Remoting .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以 ...
 - 【MySQL】MySQL 常用语法之锁表与解锁表
			
mysql 锁表语句: Lock锁整张表: 写锁定: LOCK TABLES products WRITE: 写锁,锁定之后,只有当前线程可以进行读操作和写操作,其他线程读操作和写操作均被堵塞.... ...
 - Java 构造方法的执行过程(猜测)
			
先说明一点,这篇帖子的内容都是我自己思考的结果,如有误,请务必及时告诉我,非常感谢. 起由: public class NewThread implements Runnable{ Thread t; ...