Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161873
  • 博文数量: 53
  • 博客积分: 2042
  • 博客等级: 大尉
  • 技术积分: 425
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-15 21:39
文章存档

2011年(6)

2010年(47)

分类:

2010-04-25 17:29:57

 
            linux下组播(RH9.0不行,FC10.0和DB5.04可以):
文件: multicast.tgz.tar
大小: 9KB
下载: 下载
       自己动手编写嵌入式Bootloader.doc 《转》 
        
         
文件: [转]自己动手编写嵌入式Bootloader.rar
大小: 336KB
下载: 下载
 
       Linux对端口资源的管理
文件: Linux对端口资源的管理.rar
大小: 21KB
下载: 下载
       
       现代操作系统 第2版 (荷) Andrew S.Tanenbaum 著
文件: Modern+Operating+Systems+2Nd+Ed+By+Tanenbaum+(Prentice+Hall).chm
大小: 4663KB
下载: 下载
 
 
简单 TCP   运行时可以指明IP  client接收用户输入  server输出接收的数据   端口是12310
文件: TCP-socket.rar
大小: 1KB
下载: 下载
       
//UDP客户端代码:
#include
#include
#include /*bzero library */
#include /* socket functions */
#include /* socket structs */
#include /* inet_ptoa functions */
#define SA struct sockaddr
#define MAXLINE 1024

int main(int argc, char **argv)
{
 int sockfd;
 struct sockaddr_in servaddr;
 if (argc != 2)
  printf("usage: udpcli ");
 bzero(&servaddr, sizeof(servaddr));
 servaddr.sin_family = AF_INET;
 servaddr.sin_port = htons(8889);
//Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
 sockfd = socket(AF_INET, SOCK_DGRAM, 0);
 dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));
 exit(0);
}
int dg_cli(FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen)
{
 int n;
 char sendline[MAXLINE], recvline[MAXLINE + 1];
 while (fgets(sendline, MAXLINE, fp) != NULL)
 {
  printf("the client received the message is:\n");
  sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen);
  n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);
  recvline[n] = '\0'; /* null terminate */
  fputs(recvline, stdout);
 }
}
 
 

//UDP服务器代码:
#include
#include
#include /*bzero library */
#include /* socket functions */
#include /* socket structs */
#include /* inet_ptoa functions */

#define SA struct sockaddr
#define MAXLINE 1023
int main(int argc, char** argv)
{
 int sockfd;
 struct sockaddr_in servaddr, cliaddr;
 sockfd = socket(AF_INET, SOCK_DGRAM, 0);
 bzero(&servaddr, sizeof(servaddr));
 servaddr.sin_family = AF_INET;
 servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
 servaddr.sin_port = htons(8889);
 bind(sockfd, (SA *) &servaddr, sizeof(servaddr));
 dg_echo(sockfd, (SA *) &cliaddr, sizeof(cliaddr));
 return 0;
}
int dg_echo(int sockfd, SA *pcliaddr, socklen_t clilen)
{
 int n;
 socklen_t len;
 char mesg[MAXLINE];
 for ( ; ; )
 {
  len = clilen;
  printf("the server received the message is:\n");
  while((n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len))>0)
  {
   mesg[n] ='\0';
   fputs(mesg, stdout);
   sendto(sockfd, mesg, n, 0, pcliaddr, len);
  }
 }
}
 
阅读(726) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~