一个十分好SOCKET程序源代码(服务器端)
来源:互联网 发布:360云盘 mac 版本下载 编辑:程序博客网 时间:2024/06/06 07:28
/*
Servidor de escucha en un puerto.
Listening server on a port.
By:
Por:
Oscar Medina Duarte
is111936@mail.udlap.mx
Linux> gcc server1.c
Solaris> cc server1.c -lxnet -lnsl -lsocket
*/
#include <sys/socket.h>
#include <errno.h>
#include <signal.h>
#include <string.h>
#define NUMERODEPUERTO 6666;
extern int apagar=0;
void signalhd(int senal);
void protocolo_control(int);
main() {
struct sockaddr_in sin, fsin;
int s, ssock, alen;
char *rchs;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = NUMERODEPUERTO;
if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
perror("Cant create socket");
exit(1);
}
if (bind(s, (struct sockaddr *)&sin, sizeof sin) < 0) {
perror("Cant assign addres");
exit(2);
}
if (listen(s, 5) < 0) {
perror("Cant turn to listening mode");
exit(3);
}
signal (SIGCHLD, SIG_IGN);
signal (SIGINT,signalhd);
while (1) {
if (apagar){
close(s);
exit(0);
}
alen = sizeof(fsin);
if ((ssock=accept(s, (struct sockaddr *)&fsin, &alen)) < 0) {
if (errno == EINTR) continue;
perror("Accept failed");
exit(4);
}
rchs=(char *)inet_ntoa(fsin.sin_addr);
printf("/nConexion from : %s/n", rchs);
switch (fork()) {
case -1:{
perror ("Forking error");
exit (5);
}
case 0: {
close(s);
protocolo_control(ssock);
exit(0);
}
default: {
close(ssock);
break;
}
}
}
}
void protocolo_control(int Descriptor){
char buf[4096];
int cc;
cc = read (Descriptor, buf, sizeof buf);
if (cc > 0) {
printf("Readed data :/n%s/n", buf);
write(Descriptor, buf, strlen(buf));
}
}
void signalhd(int senal){
if (senal==SIGINT){
printf("...Interrupt.../n");
apagar=1;
}
}
Servidor de escucha en un puerto.
Listening server on a port.
By:
Por:
Oscar Medina Duarte
is111936@mail.udlap.mx
Linux> gcc server1.c
Solaris> cc server1.c -lxnet -lnsl -lsocket
*/
#include <sys/socket.h>
#include <errno.h>
#include <signal.h>
#include <string.h>
#define NUMERODEPUERTO 6666;
extern int apagar=0;
void signalhd(int senal);
void protocolo_control(int);
main() {
struct sockaddr_in sin, fsin;
int s, ssock, alen;
char *rchs;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = NUMERODEPUERTO;
if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
perror("Cant create socket");
exit(1);
}
if (bind(s, (struct sockaddr *)&sin, sizeof sin) < 0) {
perror("Cant assign addres");
exit(2);
}
if (listen(s, 5) < 0) {
perror("Cant turn to listening mode");
exit(3);
}
signal (SIGCHLD, SIG_IGN);
signal (SIGINT,signalhd);
while (1) {
if (apagar){
close(s);
exit(0);
}
alen = sizeof(fsin);
if ((ssock=accept(s, (struct sockaddr *)&fsin, &alen)) < 0) {
if (errno == EINTR) continue;
perror("Accept failed");
exit(4);
}
rchs=(char *)inet_ntoa(fsin.sin_addr);
printf("/nConexion from : %s/n", rchs);
switch (fork()) {
case -1:{
perror ("Forking error");
exit (5);
}
case 0: {
close(s);
protocolo_control(ssock);
exit(0);
}
default: {
close(ssock);
break;
}
}
}
}
void protocolo_control(int Descriptor){
char buf[4096];
int cc;
cc = read (Descriptor, buf, sizeof buf);
if (cc > 0) {
printf("Readed data :/n%s/n", buf);
write(Descriptor, buf, strlen(buf));
}
}
void signalhd(int senal){
if (senal==SIGINT){
printf("...Interrupt.../n");
apagar=1;
}
}
- 一个十分好SOCKET程序源代码(服务器端)
- Socket服务器端程序简要
- 一个十分好的电子书下载站点
- 聊天室初步代码(socket客户端和服务器端源代码)~
- 一个消息提示托盘程序的开发历程(采用socket技术,附源代码)一
- windows下的一个socket多人聊天程序(附源代码)
- 一个消息提示托盘程序的开发历程(采用socket技术,附源代码)二---服务端源代码
- 一个消息提示托盘程序的开发历程(采用socket技术,附源代码)三---客户端源代码
- VC写的socket程序实现一个简单Echo服务器端和客户端程序
- 基于DES加密的java Socket 程序(服务器端)
- 介绍一个十分好用的JQUERY图片放大镜插件
- 介绍一个十分好用的JQUERY图片放大镜插件
- 介绍一个十分好用的JQUERY图片放大镜插件
- C++编写的SOCKET服务器端程序
- chrome的开发者工具(F12),十分好用
- C#简单远程控制制作源代码程序以及思路(服务器端)
- 使用TCP协议写一个可以上传文件的服务器端源代码(附详细注释)
- 一个简易的聊天程序(Socket)
- Jsp问答集
- jsp连接数据库大全
- 初学jsp心得
- RS-232-C端口实时监控软件的设计实现
- javabean分页例子
- 一个十分好SOCKET程序源代码(服务器端)
- vb / C# 中报表套打的轻松实现
- STRUTS&WSBCC
- 网站设计的标准时代
- http://blog.csdn.net/gotoidea/archive/2004/08/03/59894.aspx
- 请小陈尽快将我们自己的Blog网站建立起来
- 获取Sql服务器列表 (C#)
- Discoverer is quite a good tool.
- 对架构设计的想法