linux网络编程服务端代码.doc
文本预览下载声明
#include gtk/gtk.h//值得珍惜
#includestdio.h
#includestdlib.h
#includestring.h
#includesys/types.h
#includesys/socket.h
#includenetinet/in.h
#includeunistd.h
#includearpa/inet.h
#includepthread.h
#include libintl.h
#include locale.h
gint sockfd,connfd;
struct sockaddr_in server;
struct sockaddr_in client;
socklen_t addrlen;
gchar buf[1024];
gchar get_buf[1024];
gboolean isconnected=FALSE;
static GtkWidget *text;
static GtkTextBuffer *buffer;
//static GtkWidget *message_entry;
GtkWindow *window1;
GtkEntry *entry1;
GtkTextView *textview1;
//void on_textview1_paste_clipboard();
//void on_entry1_insert_text();
#define w_(builder,type,name) name=GTK_##type(gtk_builder_get_object(builder,#name))
void server_get_widgets(GtkBuilder *gb)
{
w_(gb,WINDOW,window1);
w_(gb,ENTRY,entry1);
w_(gb,TEXT_VIEW,textview1);
}
void on_button1_clicked(GtkWidget *button,gpointer data)
{
on_send();
}
void on_button2_clicked(GtkWidget *button,gpointer data)
{
gtk_entry_set_text(GTK_ENTRY(entry1),gettext(8));
}
void on_window1_destroy()
{
on_delete_event();
}
gboolean do_connect(void)
{
GtkTextIter iter;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror(socket());
return -1;
}
server.sin_family=AF_INET;
server.sin_port=htons(1234);
server.sin_addr.s_addr=inet_addr(127.0.0.1);
int bind_id=bind(sockfd,(struct sockaddr*)server,sizeof(server));
if(bind_id==-1)
{
perror(bind());
return -1;
}
int listen_id;
{
if((listen_id=listen(sockfd,1))==-1)
{
perror(listen());
return -1;
}
}
addrlen=sizeof(client);
connfd=accept(sockfd,(struct sockaddr*)client,addrlen);
if(connfd==-1)
{
perror(accept());
return -1;
}
else
{
gtk_text_buffer_get_end_iter(buffer,iter);
gtk_text_buffer_insert(buffer,iter,connect succes\n,-1);
isconnected=TRUE;
return TRUE;
}
}
void on_delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
close(sockfd);
gtk_main_quit();
}
void on_send(GtkButton* button,gpointer data)
{
const char* message;
GtkTextIter it
显示全部