极速多用户网页音乐播放器(框架固定形式/底部音乐播放器)
<div><p>此网页使用了框架,但您的浏览器不支持框架。</p></div>

简单网络编程(Linux)

客户端通信流程:

1)、创建ClientSocket

2)、初始化ServerAddr

3)、连接到服务器connect

4)、利用write、read进行读写操作

5)、关闭ClientSocket

简单代码如下:

View Code
 1 #include <netinet/in.h>
 2 #include <arpa/inet.h>
 3 #include <unistd.h>
 4 #include <iostream>
 5 #include <sys/socket.h>
 6 #include <cstdlib>
 7 
 8 using namespace std;
 9 
10 const int MAX_DATA_LENGTH = 255;
11 const short int SERVER_PORT = 9527;
12 
13 int main(int argc, char** argv)
14 {
15     int sockfd = 0;
16     int len = 0;
17     struct sockaddr_in address;
18     int result = 0;
19     char ch[MAX_DATA_LENGTH] = "Hello Server!";
20     
21     sockfd = socket(AF_INET, SOCK_STREAM, 0);
22 
23     address.sin_family = AF_INET;
24     address.sin_port = htons(SERVER_PORT);
25     address.sin_addr.s_addr = inet_addr("192.168.1.105");
26     len = sizeof(address);
27 
28     result = connect(sockfd, (struct sockaddr*)&address, len);
29     if (-1 == result)
30     {
31         cerr << "connect failed" << std::endl;
32         exit(EXIT_FAILURE);
33     }
34 
35     write(sockfd, ch, MAX_DATA_LENGTH);
36     read(sockfd, ch, MAX_DATA_LENGTH);
37     cout << "receive from server is " << ch << std::endl;
38     close(sockfd);
39     exit(EXIT_SUCCESS);
40 }

服务器端通信流程:
1)、创建ServerSocket

2)、初始化ServerAddr

3)、将ServerSocket和ServerAddr绑定(bind)

4)、开始监听Listen

5)、进入While循环,不断的accept接入的客户端ClientSocket,进行读写操作(write、read)

6)、关闭ClientSocket

7)、关闭ServerSocket

简单代码如下:

View Code
 1 #include <netinet/in.h>
 2 #include <arpa/inet.h>
 3 #include <unistd.h>
 4 #include <iostream>
 5 #include <string.h>
 6 #include <cstdlib>
 7 #include <sys/socket.h>
 8 
 9 using namespace std;
10 
11 const int MAX_DATA_LENGTH = 255;
12 const short int SERVER_PORT = 9527;
13 
14 int main(int argc, char** argv)
15 {
16     int server_sockfd = 0;
17     int client_sockfd = 0;
18     int server_len = 0;
19     int client_len = 0;
20     struct sockaddr_in server_addr;
21     struct sockaddr_in client_addr;
22     int result = 0;
23     char ch[MAX_DATA_LENGTH] = {0};
24 
25     server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
26     server_addr.sin_family = AF_INET;
27     server_addr.sin_port = htons(SERVER_PORT);
28     server_addr.sin_addr.s_addr = inet_addr("192.168.1.105");
29     server_len = sizeof(server_addr);
30 
31     if(-1 == bind(server_sockfd, (struct sockaddr*)&server_addr, server_len))
32     {
33         cerr << "bingd failed";
34         exit(EXIT_FAILURE);
35     }
36     if (-1 == listen(server_sockfd, 5))
37     {
38         cerr << "Listen failed";
39         exit(EXIT_FAILURE);
40     }
41 
42     while(1)
43     {
44         cout << "server waiting" << std::endl;
45         client_len = sizeof(client_addr);
46         client_sockfd = accept(server_sockfd, (struct sockaddr*)&client_addr, (socklen_t*)&client_len);
47 
48         read(client_sockfd, ch, MAX_DATA_LENGTH);
49         std::cout << "receive data is " << ch << std::endl;
50         strncpy(ch, "Hello Client!", MAX_DATA_LENGTH);
51 
52         write(client_sockfd, ch, MAX_DATA_LENGTH);
53         close(client_sockfd);
54         memset(ch, 0, sizeof(ch));
55     }
56     close(server_sockfd);
57 }

 

posted @ 2013-04-15 20:12  飞鼠溪  阅读(126)  评论(0编辑  收藏  举报