├── ARP_Assignment_22 ├── ARP_eth_frame │ ├── eth_header.png │ ├── reply │ ├── reply.c │ ├── send │ └── send.c └── ARP_header │ ├── arp_header.png │ ├── reply │ ├── reply.c │ ├── send │ └── send.c ├── CN-Mid-Labaraory-attchment.cpp ├── CN-Notes-2021 ├── .~lock.ARP-RARP.ppt# ├── ARP-RARP.ppt ├── CN THEORY PART.pdf ├── CN-Notes-2021.pdf ├── CNTextBook Larry L Peterson.pdf ├── CN_Lab_2021-All-Library-Calls.txt ├── Client-Server.ppt ├── DNS.ppt ├── FTP-TFTP Animated.ppt ├── IP.ppt ├── SMTP.ppt ├── TCP.ppt ├── UNIX Network Programming(Volume1,3rd).pdf ├── questions_related_to_ip_addresses.pdf └── raw sockets │ ├── A Guide to Using Raw Sockets - open source for you.pdf │ ├── Packet_Capture.c │ ├── Packet_Creation.c │ ├── The RAW socket C programming tutorial with working program examples tested on Linux OS.pdf │ ├── rawsender.c │ └── rawsockreceiver.c ├── Connection_Oriented_Socket_Prog_Assignment_13 ├── .vscode │ └── settings.json ├── Connection_oriented_execv │ ├── c1 │ ├── c1.c │ ├── c2 │ ├── c2.c │ ├── s │ ├── s.c │ ├── s1 │ ├── s1.c │ ├── s2 │ └── s2.c ├── Connection_oriented_fork │ ├── c1 │ ├── c1.c │ ├── c2 │ ├── c2.c │ ├── s │ └── s.c ├── Connection_oriented_threads │ ├── c1 │ ├── c1.c │ ├── c2 │ ├── c2.c │ ├── s │ └── s.c └── Iterative_connection_oriented_service │ ├── c │ ├── c.c │ ├── s │ └── s.c ├── Device_driver_Assignment_11 ├── .vscode │ └── settings.json ├── Device-Dirvers-2 │ ├── MY │ │ ├── All_in_one │ │ │ ├── Makefile │ │ │ └── allinone.c │ │ ├── LED │ │ │ ├── Makefile │ │ │ ├── key.c │ │ │ └── key.mod.c │ │ ├── Param_hello │ │ │ ├── Makefile │ │ │ └── hello.c │ │ ├── TickTock │ │ │ ├── Makefile │ │ │ ├── p1.cpp │ │ │ └── tickTock.c │ │ ├── VRAM │ │ │ ├── Makefile │ │ │ ├── video_ram.c │ │ │ └── video_ram.mod.c │ │ ├── diable │ │ │ ├── Makefile │ │ │ ├── _8042_ PS_2 Controller - OSDev Wiki.html │ │ │ ├── _8042_ PS_2 Controller - OSDev Wiki_files │ │ │ │ ├── At-kbc.png │ │ │ │ ├── Ps2-kbc.png │ │ │ │ ├── load(1).php │ │ │ │ ├── load(2).php │ │ │ │ ├── load(3).php │ │ │ │ ├── load(4).php │ │ │ │ ├── load(5).php │ │ │ │ ├── load(6).php │ │ │ │ ├── load(7).php │ │ │ │ ├── load.php │ │ │ │ └── poweredby_mediawiki_88x31.png │ │ │ └── key.c │ │ ├── key.c │ │ └── shutdown │ │ │ ├── Makefile │ │ │ ├── key1.c │ │ │ └── key1.mod.c │ └── Programs │ │ ├── 1 │ │ ├── Device_driver_command_used │ │ ├── Makefile │ │ ├── Makefile (1) │ │ ├── Makefile (2) │ │ ├── Module.symvers │ │ ├── allinone.c │ │ ├── char_Dev.c │ │ ├── hello.c │ │ ├── modules.order │ │ ├── test.c │ │ └── tickTock.c ├── Devvice-Drivers-3 │ ├── LDD3e.pdf │ ├── Part1 │ │ ├── 1-KR-Linux Drivers.ppt │ │ ├── 2-intro_linux_device_drivers.pdf │ │ ├── 3-linux kernel driver.pdf │ │ ├── 4-The Linux Kernel Module Programming Guide.html │ │ ├── 5-kernel-tutorial-2005-full.ppt │ │ ├── 6-The Linux Kernel Module Programming Guide.mht │ │ ├── Uresh-device-driver1.ppt │ │ └── Uresh-device-driver2.ppt │ └── Part2 │ │ ├── IOKitFundamentals.pdf │ │ ├── WritingDeviceDriver.pdf │ │ └── __MACOSX │ │ └── MadroidTether │ │ ├── ._.DS_Store │ │ ├── ._IOKitFundamentals.pdf │ │ └── ._WritingDeviceDriver.pdf ├── KR - Device - Driver - Delights-I │ ├── 1-KR-Linux Driver-TickTock-2.ppt │ ├── 1-KR-Linux Driver-TickTock.ppt │ ├── 2-KR-Device Driver Programs-2 │ │ ├── Device_driver_command_used │ │ ├── Makefile │ │ ├── Makefile (1) │ │ ├── Makefile (2) │ │ ├── char_Dev.c │ │ ├── hello.c │ │ ├── test.c │ │ └── tickTock.c │ ├── 3-KR-DVDs-Lab.pdf │ ├── 4-A sample Linux Character Device Driver.pdf │ └── 5-tutorial-DD.pdf ├── basic │ ├── .basic.ko.cmd │ ├── .basic.mod.cmd │ ├── .basic.mod.o.cmd │ ├── .basic.o.cmd │ ├── Makefile │ ├── Module.symvers │ ├── basic.c │ ├── basic.ko │ ├── basic.mod │ ├── basic.mod.c │ ├── basic.mod.o │ ├── basic.o │ └── modules.order └── chardev │ ├── .chardev.ko.cmd │ ├── .chardev.mod.cmd │ ├── .chardev.mod.o.cmd │ ├── .chardev.o.cmd │ ├── Makefile │ ├── Module.symvers │ ├── chardev.c │ ├── chardev.ko │ ├── chardev.mod │ ├── chardev.mod.c │ ├── chardev.mod.o │ ├── chardev.o │ └── modules.order ├── End_lab_exam ├── CN-EndSem-Lab-2021-Qs-1-8 and Q14.pdf ├── CN-EndSem-Lab-2021Qs-9-13.pdf └── ques_1 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── capitalize │ ├── capitalize.c │ ├── client │ ├── client.c │ ├── config.txt │ ├── math │ ├── math.cpp │ ├── n2 │ ├── n2.c │ ├── nitnetd │ ├── nitnetd.c │ └── supserver ├── Everything till now:Assignment_7 ├── .vscode │ └── settings.json ├── C1 ├── C1.c ├── C2 ├── C2.c ├── D ├── D.c ├── Output.mkv ├── S └── S.c ├── Hamming_code_RPC_Assignment_19 ├── .vscode │ └── settings.json ├── Hamming_Code │ ├── hamm_code_check.png │ ├── hamming_code_check │ ├── hamming_code_check.cpp │ ├── hamming_code_gen │ ├── hamming_code_gen.cpp │ └── hamming_code_gen.png ├── RPC-notes.pdf └── rpc │ ├── rpc_calc │ ├── Makefile.calc │ ├── calc.h │ ├── calc.x │ ├── calc_client │ ├── calc_client.c │ ├── calc_client.o │ ├── calc_clnt.c │ ├── calc_clnt.o │ ├── calc_server │ ├── calc_server.c │ ├── calc_server.o │ ├── calc_svc.c │ ├── calc_svc.o │ ├── calc_xdr.c │ ├── calc_xdr.o │ └── rpc_calc.png │ ├── rpc_math │ ├── Makefile.MathSpec │ ├── MathClient.c │ ├── MathServer.c │ ├── MathSpec.h │ ├── MathSpec.x │ ├── MathSpec_client │ ├── MathSpec_client.c │ ├── MathSpec_client.o │ ├── MathSpec_clnt.c │ ├── MathSpec_clnt.o │ ├── MathSpec_server │ ├── MathSpec_server.c │ ├── MathSpec_server.o │ ├── MathSpec_svc.c │ ├── MathSpec_svc.o │ ├── MathSpec_xdr.c │ └── MathSpec_xdr.o │ ├── rpc_practice │ ├── Makefile.digsum │ ├── client.c │ ├── digsum.h │ ├── digsum.png │ ├── digsum.x │ ├── digsum_client │ ├── digsum_client.c │ ├── digsum_client.o │ ├── digsum_clnt.c │ ├── digsum_clnt.o │ ├── digsum_server │ ├── digsum_server.c │ ├── digsum_server.o │ ├── digsum_svc.c │ ├── digsum_svc.o │ ├── digsum_xdr.c │ ├── digsum_xdr.o │ └── server.c │ ├── rpc_squaring │ ├── Makefile.square │ ├── client.c │ ├── server.c │ ├── square.h │ ├── square.x │ ├── square_client │ ├── square_client.c │ ├── square_client.o │ ├── square_clnt.c │ ├── square_clnt.o │ ├── square_server │ ├── square_server.c │ ├── square_server.o │ ├── square_svc.c │ ├── square_svc.o │ ├── square_xdr.c │ └── square_xdr.o │ └── test │ ├── Makefile.square │ ├── client.c │ ├── server.c │ ├── square.h │ ├── square.x │ ├── square_client │ ├── square_client.c │ ├── square_client.o │ ├── square_clnt.c │ ├── square_clnt.o │ ├── square_server │ ├── square_server.c │ ├── square_server.o │ ├── square_svc.c │ ├── square_svc.o │ ├── square_xdr.c │ └── square_xdr.o ├── INETD_Assignment_18 ├── .vscode │ └── settings.json ├── dynamic_inetd │ ├── capitalize │ ├── capitalize.c │ ├── client │ ├── client.c │ ├── config.txt │ ├── math │ ├── math.cpp │ ├── notify.c │ ├── supserver │ └── supserver.c └── inetd │ ├── capitalize │ ├── capitalize.c │ ├── client │ ├── client.c │ ├── config.txt │ ├── math │ ├── math.cpp │ ├── supserver │ └── supserver.c ├── IO_Multiplexing: Assignment_4 ├── code.cpp ├── code_file ├── code_file.cpp ├── inp.txt ├── poll_basic ├── poll_basic.cpp ├── poll_test_1.cpp ├── poll_test_2.cpp ├── poll_test_3.cpp ├── pt1 ├── pt2 ├── pt3 ├── q2_p1 ├── q2_p1.c ├── q2_p2 ├── q2_p2.c ├── q3_client1 ├── q3_client1.cpp ├── q3_client2 ├── q3_client2.cpp ├── q3_server ├── q3_server.cpp ├── q4_client ├── q4_client.cpp ├── q4_server ├── q4_server.cpp ├── req_out.txt └── returned_out.txt ├── Message Queues: Assignment_8 ├── .vscode │ └── settings.json ├── q1_basic_p1.c ├── q1_basic_p2.c ├── q1_p1 ├── q1_p2 ├── q2_p1 ├── q2_p2 ├── q2_p2p_p1.c ├── q2_p2p_p2.c ├── q3_all_info_p1.c ├── q3_all_info_p2.c ├── q3_p1 ├── q3_p2 ├── q4_series_transfer │ ├── p1 │ ├── p1.c │ ├── p2 │ ├── p2.c │ ├── p3 │ ├── p3.c │ ├── p4 │ └── p4.c └── q5_chat_server │ ├── c1 │ ├── c1.c │ ├── c2 │ ├── c2.c │ ├── c3 │ ├── c3.c │ ├── s │ └── s.c ├── Mid_exam ├── Q1 │ ├── .vscode │ │ └── settings.json │ ├── aos │ ├── aos.c │ ├── client │ ├── client.c │ ├── op1.png │ ├── op2.png │ ├── question_image.png │ ├── s1 │ ├── s1.c │ ├── s2 │ ├── s2.c │ ├── s3 │ ├── s3.c │ ├── s4 │ └── s4.c └── Q2 │ ├── .vscode │ └── settings.json │ ├── at │ ├── at.c │ ├── client │ ├── client.c │ ├── image.png │ ├── j.c │ ├── r1 │ ├── r1.c │ ├── r2 │ ├── r2.c │ ├── r3 │ └── r3.c ├── Minor_exam ├── .vscode │ └── settings.json ├── 187203_q2.zip ├── 187203_q2 │ ├── output.png │ ├── q2_c1.cpp │ ├── q2_c2.cpp │ ├── q2_c3.cpp │ └── server.cpp ├── q2_c1 ├── q2_c2 ├── q2_c3 ├── q3_p1 ├── q3_p1.cpp ├── q3_p2 ├── q3_p2.cpp ├── q3_p3 ├── q3_p3.cpp ├── q3_p4 ├── q3_p4.cpp ├── q3_p5.cpp ├── q3_p6.cpp └── server ├── Pipes: Assigment_3 ├── q1 ├── q1.cpp ├── q2 ├── q2.cpp ├── q3 ├── q3.cpp ├── q4 ├── q4.c ├── q4_p2 ├── q4_p2.c ├── q5 ├── q5.cpp ├── q5_p2 ├── q5_p2.cpp ├── q6 ├── q6.c ├── q6_p2 ├── q6_p2.c ├── q71 ├── q71.c ├── q72 ├── q72.c ├── q73 ├── q73.c ├── q74 └── q74.c ├── RAW_Sockets_Assignment_20 ├── IP_Header_printing │ ├── .vscode │ │ └── settings.json │ ├── header_print.png │ ├── receiver │ ├── receiver.c │ ├── sender │ └── sender.c ├── IP_Spoofing │ ├── .vscode │ │ └── settings.json │ ├── ip_spoof.png │ ├── receiver │ ├── receiver.c │ ├── sender │ └── sender.c ├── Swyamabhoo_server_with_tracer │ ├── .vscode │ │ └── settings.json │ ├── client │ ├── client.c │ ├── iss │ ├── iss.c │ ├── question_image.png │ ├── service │ ├── service.c │ ├── tracer │ └── tracer.c ├── packet_sniffing │ ├── sniff │ ├── sniff.c │ ├── tcp_sender │ ├── tcp_sender.c │ ├── udp_sender │ └── udp_sender.c └── swayambhoo_server │ ├── .vscode │ └── settings.json │ ├── client │ ├── client.c │ ├── server │ ├── server.c │ ├── sniff │ ├── sniff.c │ ├── sniff1.png │ ├── sniff2.png │ └── sniff3.png ├── README.md ├── Semaphores_execv_fork:Assignment_2 ├── file.txt ├── mytext.txt ├── q1 ├── q1.c ├── q2_p1 ├── q2_p1.c ├── q2_p2 ├── q2_p2.c ├── q3_p1 ├── q3_p1.cpp ├── q3_p2 └── q3_p2.cpp ├── Semaphores_fork: Assignment_1 ├── q1 ├── q1.cpp ├── q2 ├── q2.c ├── q3 ├── q3.c ├── q4 └── q4.cpp ├── Signals: Assignment_5 ├── raise ├── raise.c ├── sig_shm_P2 ├── sig_shm_P2.c ├── sig_shm_p1 ├── sig_shm_p1.c ├── sig_shm_p2 ├── sigintdefault ├── sigintdefault.cpp ├── sigintdefault_2 ├── sigintdefault_2.cpp ├── user_signals └── user_signals.c ├── Signals_detail: Assignment_6 ├── Group_id │ ├── group_id │ ├── group_id.c │ ├── group_id_p2 │ ├── group_id_p2.c │ ├── group_id_p3 │ ├── group_id_p3.c │ ├── group_id_p4 │ └── group_id_p4.c ├── Thread signalling │ ├── thread_signals │ └── thread_signals.c ├── Thread_signalling_2 │ ├── thread_signal_p1 │ ├── thread_signal_p1.c │ ├── thread_signal_p2 │ └── thread_signal_p2.c └── sigaction_and_siginfo │ ├── know_process │ ├── know_process.c │ ├── know_process_p2 │ └── know_process_p2.c ├── UDP_Assignment_15 ├── .vscode │ └── settings.json ├── Basic │ ├── client │ ├── client.c │ ├── server │ └── server.c ├── client-server-chat │ ├── client │ ├── client.c │ ├── server │ └── server.c ├── tcp-udp-select │ ├── server │ ├── server.c │ ├── tcp_client │ ├── tcp_client.c │ ├── udp_client │ └── udp_client.c └── tcpn-udp1-select │ ├── server │ ├── server.c │ ├── tcp_client1 │ ├── tcp_client1.c │ ├── tcp_client2 │ ├── tcp_client2.c │ ├── udp_client │ └── udp_client.c ├── Unix_Domain_Sockets_Assignment_16 ├── file.txt ├── receiver ├── receiver.c ├── sender └── sender.c ├── chat_server_group:Assignment_10 ├── .vscode │ └── settings.json ├── Output.mkv ├── a1 ├── a1.cpp ├── a2 ├── a2.cpp ├── a3 ├── a3.cpp ├── b1 ├── b1.cpp ├── b2 ├── b2.cpp ├── b3 ├── b3.cpp ├── s └── s.cpp ├── fd_pass_NITW_News_Assignment_17 ├── .vscode │ └── settings.json ├── NITW_News │ ├── document │ ├── document.c │ ├── editor │ ├── editor.c │ ├── live_telecaster.cpp │ ├── news_reader1.c │ ├── news_reader2.cpp │ ├── reporter │ ├── reporter.c │ └── screen.cpp └── fd_pass │ ├── alt_server │ ├── alt_server.c │ ├── server │ ├── server.c │ ├── tcp_client1 │ ├── tcp_client1.c │ ├── tcp_client2 │ ├── tcp_client2.c │ ├── udp_client │ └── udp_client.c ├── functions_needed.c ├── m-n-server-client-NITW-Passport_Assignment_21 └── m-n-serv_cli │ ├── .vscode │ └── settings.json │ ├── client │ ├── client.c │ ├── image.png │ ├── server │ └── server.c ├── readv() & writev(): Assignment_9 ├── .vscode │ └── settings.json ├── client ├── client.c ├── server └── server.c └── select_Assignment_14 └── Client-server ├── client ├── client.c ├── server └── server.c /ARP_Assignment_22/ARP_eth_frame/eth_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/ARP_Assignment_22/ARP_eth_frame/eth_header.png -------------------------------------------------------------------------------- /ARP_Assignment_22/ARP_eth_frame/reply: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/ARP_Assignment_22/ARP_eth_frame/reply -------------------------------------------------------------------------------- /ARP_Assignment_22/ARP_eth_frame/send: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/ARP_Assignment_22/ARP_eth_frame/send -------------------------------------------------------------------------------- /ARP_Assignment_22/ARP_header/arp_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/ARP_Assignment_22/ARP_header/arp_header.png -------------------------------------------------------------------------------- /ARP_Assignment_22/ARP_header/reply: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/ARP_Assignment_22/ARP_header/reply -------------------------------------------------------------------------------- /ARP_Assignment_22/ARP_header/send: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/ARP_Assignment_22/ARP_header/send -------------------------------------------------------------------------------- /CN-Notes-2021/.~lock.ARP-RARP.ppt#: -------------------------------------------------------------------------------- 1 | ,abhishek,abhishek,02.05.2021 14:48,file:///home/abhishek/.config/libreoffice/4; -------------------------------------------------------------------------------- /CN-Notes-2021/ARP-RARP.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/ARP-RARP.ppt -------------------------------------------------------------------------------- /CN-Notes-2021/CN THEORY PART.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/CN THEORY PART.pdf -------------------------------------------------------------------------------- /CN-Notes-2021/CN-Notes-2021.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/CN-Notes-2021.pdf -------------------------------------------------------------------------------- /CN-Notes-2021/CNTextBook Larry L Peterson.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/CNTextBook Larry L Peterson.pdf -------------------------------------------------------------------------------- /CN-Notes-2021/Client-Server.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/Client-Server.ppt -------------------------------------------------------------------------------- /CN-Notes-2021/DNS.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/DNS.ppt -------------------------------------------------------------------------------- /CN-Notes-2021/FTP-TFTP Animated.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/FTP-TFTP Animated.ppt -------------------------------------------------------------------------------- /CN-Notes-2021/IP.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/IP.ppt -------------------------------------------------------------------------------- /CN-Notes-2021/SMTP.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/SMTP.ppt -------------------------------------------------------------------------------- /CN-Notes-2021/TCP.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/TCP.ppt -------------------------------------------------------------------------------- /CN-Notes-2021/UNIX Network Programming(Volume1,3rd).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/UNIX Network Programming(Volume1,3rd).pdf -------------------------------------------------------------------------------- /CN-Notes-2021/questions_related_to_ip_addresses.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/questions_related_to_ip_addresses.pdf -------------------------------------------------------------------------------- /CN-Notes-2021/raw sockets/A Guide to Using Raw Sockets - open source for you.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/raw sockets/A Guide to Using Raw Sockets - open source for you.pdf -------------------------------------------------------------------------------- /CN-Notes-2021/raw sockets/The RAW socket C programming tutorial with working program examples tested on Linux OS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/CN-Notes-2021/raw sockets/The RAW socket C programming tutorial with working program examples tested on Linux OS.pdf -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "iostream": "cpp" 4 | } 5 | } -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/c1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/c1 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/c2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/c2 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s1 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | while(1) 11 | { 12 | char buf[1024]; 13 | strcpy(buf,""); 14 | read(0,buf,sizeof(buf)); 15 | buf[strlen(buf)-1] = '\0'; 16 | if(buf[0]=='@') 17 | { 18 | exit(0); 19 | } 20 | printf("%s\n",buf); 21 | fflush(stdout); 22 | printf("S1 processed the message!\n"); 23 | fflush(stdout); 24 | } 25 | printf("S1 terminated!\n"); 26 | return 0; 27 | } -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s2 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_execv/s2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | while(1) 11 | { 12 | char buf[1024]; 13 | strcpy(buf,""); 14 | read(0,buf,sizeof(buf)); 15 | buf[strlen(buf)-1] = '\0'; 16 | if(buf[0]=='@') 17 | { 18 | exit(0); 19 | } 20 | printf("%s\n",buf); 21 | fflush(stdout); 22 | printf("S2 processed the message!\n"); 23 | fflush(stdout); 24 | } 25 | printf("S2 terminated!\n"); 26 | return 0; 27 | } -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/c1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/c1 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/c1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #define PORT 8080 7 | struct sockaddr_in serv_addr; 8 | int main() 9 | { 10 | char buf[1024]; 11 | int csfd; 12 | if ((csfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) 13 | { 14 | printf("\n Socket creation error \n"); 15 | return -1; 16 | } 17 | serv_addr.sin_family = AF_INET; 18 | serv_addr.sin_port = htons(PORT); 19 | if(inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr)<=0) 20 | { 21 | printf("\nInvalid address/ Address not supported \n"); 22 | return -1; 23 | } 24 | 25 | if (connect(csfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) 26 | { 27 | printf("\nConnection Failed \n"); 28 | return -1; 29 | } 30 | while(1) 31 | { 32 | printf("C1: "); 33 | fgets(buf,sizeof(buf),stdin); 34 | send(csfd,buf,strlen(buf)+1,0); 35 | } 36 | 37 | return 0; 38 | } -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/c2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/c2 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/c2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #define PORT 8080 7 | struct sockaddr_in serv_addr; 8 | int main() 9 | { 10 | char buf[1024]; 11 | int csfd; 12 | if ((csfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) 13 | { 14 | printf("\n Socket creation error \n"); 15 | return -1; 16 | } 17 | serv_addr.sin_family = AF_INET; 18 | serv_addr.sin_port = htons(PORT); 19 | if(inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr)<=0) 20 | { 21 | printf("\nInvalid address/ Address not supported \n"); 22 | return -1; 23 | } 24 | 25 | if (connect(csfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) 26 | { 27 | printf("\nConnection Failed \n"); 28 | return -1; 29 | } 30 | while(1) 31 | { 32 | printf("C2: "); 33 | fgets(buf,sizeof(buf),stdin); 34 | send(csfd , buf , strlen(buf)+1 , 0 ); 35 | } 36 | return 0; 37 | } -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_fork/s -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_threads/c1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_threads/c1 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_threads/c2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_threads/c2 -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_threads/s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Connection_oriented_threads/s -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Iterative_connection_oriented_service/c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Iterative_connection_oriented_service/c -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Iterative_connection_oriented_service/c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #define PORT 8080 7 | 8 | int main(int argc, char const *argv[]) 9 | { 10 | int sock = 0, valread; 11 | struct sockaddr_in serv_addr; 12 | char *hello = "Hello from client"; 13 | char buff[1024] = {0}; 14 | if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) 15 | { 16 | printf("\n Socket creation error \n"); 17 | return -1; 18 | } 19 | 20 | serv_addr.sin_family = AF_INET; 21 | serv_addr.sin_port = htons(PORT); 22 | 23 | if(inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr)<=0) 24 | { 25 | printf("\nInvalid address/ Address not supported \n"); 26 | return -1; 27 | } 28 | 29 | if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) 30 | { 31 | printf("\nConnection Failed \n"); 32 | return -1; 33 | } 34 | send(sock,hello,strlen(hello)+1,0); 35 | printf("Hello message sent\n"); 36 | valread=read(sock,buff,1024); 37 | printf("%s\n",buff); 38 | return 0; 39 | } -------------------------------------------------------------------------------- /Connection_Oriented_Socket_Prog_Assignment_13/Iterative_connection_oriented_service/s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Connection_Oriented_Socket_Prog_Assignment_13/Iterative_connection_oriented_service/s -------------------------------------------------------------------------------- /Device_driver_Assignment_11/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "module.h": "c", 4 | "ethtool.h": "c", 5 | "kernel.h": "c" 6 | } 7 | } -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/All_in_one/Makefile: -------------------------------------------------------------------------------- 1 | obj-m += allinone.o 2 | all: 3 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 4 | 5 | clean: 6 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 7 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/LED/Makefile: -------------------------------------------------------------------------------- 1 | 2 | obj-m += key.o 3 | 4 | all: 5 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 6 | 7 | clean: 8 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 9 | 10 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/LED/key.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #define KEY_STAT 0x60 6 | #define KEY_DAT 0x64 7 | 8 | u8 bit[7]={1,2,4,8,16,32,64}; 9 | 10 | static int hello_init(void) 11 | { 12 | printk(KERN_ALERT "hello world \n"); 13 | u8 val_stat,val_data; 14 | val_stat = inb(KEY_STAT); 15 | val_data = inb(KEY_DAT); 16 | val_stat|=bit[0]; 17 | outb(val_stat,KEY_STAT); 18 | printk(KERN_ALERT "%d %d\n",val_stat,val_data); 19 | return 0; 20 | } 21 | 22 | static void hello_exit(void) 23 | { 24 | printk(KERN_ALERT " good bye \n"); 25 | } 26 | 27 | module_init(hello_init); 28 | module_exit(hello_exit); 29 | MODULE_LICENSE("GPL"); 30 | MODULE_AUTHOR("KRSir"); 31 | /* 32 | cat /proc/ioports 33 | cat /proc/iomem 34 | */ -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/LED/key.mod.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | MODULE_INFO(vermagic, VERMAGIC_STRING); 6 | MODULE_INFO(name, KBUILD_MODNAME); 7 | 8 | __visible struct module __this_module 9 | __attribute__((section(".gnu.linkonce.this_module"))) = { 10 | .name = KBUILD_MODNAME, 11 | .init = init_module, 12 | #ifdef CONFIG_MODULE_UNLOAD 13 | .exit = cleanup_module, 14 | #endif 15 | .arch = MODULE_ARCH_INIT, 16 | }; 17 | 18 | static const char __module_depends[] 19 | __used 20 | __attribute__((section(".modinfo"))) = 21 | "depends="; 22 | 23 | 24 | MODULE_INFO(srcversion, "C7943AC1072CBEF156C63DF"); 25 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/Param_hello/Makefile: -------------------------------------------------------------------------------- 1 | obj-m += hello.o 2 | all: 3 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 4 | 5 | clean: 6 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 7 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/Param_hello/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | static char* whom="world"; 6 | static int times=1,i; 7 | module_param(whom,charp, S_IRUGO); 8 | module_param(times,int, S_IRUGO); 9 | 10 | static int hello_init(void) 11 | { 12 | for(i=0;i 2 | #include 3 | #include 4 | using namespace std; 5 | char arr[100]; 6 | int main() 7 | { 8 | int fd=open("/dev/TickTock",O_RDWR); 9 | int i=read(fd,arr,30);arr[i]='\0'; 10 | cout< 2 | #include 3 | #include 4 | 5 | MODULE_INFO(vermagic, VERMAGIC_STRING); 6 | MODULE_INFO(name, KBUILD_MODNAME); 7 | 8 | __visible struct module __this_module 9 | __attribute__((section(".gnu.linkonce.this_module"))) = { 10 | .name = KBUILD_MODNAME, 11 | .init = init_module, 12 | #ifdef CONFIG_MODULE_UNLOAD 13 | .exit = cleanup_module, 14 | #endif 15 | .arch = MODULE_ARCH_INIT, 16 | }; 17 | 18 | static const char __module_depends[] 19 | __used 20 | __attribute__((section(".modinfo"))) = 21 | "depends="; 22 | 23 | 24 | MODULE_INFO(srcversion, "B14D9008242C08D02818AB8"); 25 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/Makefile: -------------------------------------------------------------------------------- 1 | 2 | obj-m += key.o 3 | 4 | all: 5 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 6 | 7 | clean: 8 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 9 | 10 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/At-kbc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/At-kbc.png -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/Ps2-kbc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/Ps2-kbc.png -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/load(1).php: -------------------------------------------------------------------------------- 1 | div.mw-geshi div,div.mw-geshi div pre,span.mw-geshi,pre.source-css,pre.source-javascript{font-family:monospace,Courier !important} @media print{ } 2 | 3 | /* cache key: wikidb:resourceloader:filter:minify-css:4:990d0644862009377a1a48a78b53b366 */ 4 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/load(5).php: -------------------------------------------------------------------------------- 1 | jQuery(function($){var $pCactions=$('#p-cactions');$pCactions.find('h5 a').click(function(e){$pCactions.find('.menu').toggleClass('menuForceShow');e.preventDefault();}).focus(function(){$pCactions.addClass('vectorMenuFocus');}).blur(function(){$pCactions.removeClass('vectorMenuFocus');});});;mw.loader.state({"skins.vector":"ready"}); 2 | 3 | /* cache key: wikidb:resourceloader:filter:minify-js:4:26824a89365a40f4af7e018abc19d2da */ 4 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/load(7).php: -------------------------------------------------------------------------------- 1 | ;mw.loader.state({"site":"ready"}); 2 | 3 | /* cache key: wikidb:resourceloader:filter:minify-js:4:7ae2d4bbda341e08f06179ae4946fe6c */ 4 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/poweredby_mediawiki_88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/_8042_ PS_2 Controller - OSDev Wiki_files/poweredby_mediawiki_88x31.png -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/diable/key.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #define KEY_STAT 0x60 6 | #define KEY_DAT 0x64 7 | 8 | u8 bit[8]={1,2,4,8,16,32,64,128}; 9 | 10 | static int hello_init(void) 11 | { 12 | printk(KERN_ALERT "hello world \n"); 13 | u8 val_stat,val_data; 14 | /*val_stat = inb(KEY_STAT); 15 | val_data = inb(KEY_DAT); 16 | val_stat|=bit[0]; 17 | outb(val_stat,KEY_STAT); 18 | printk(KERN_ALERT "%d %d\n",val_stat,val_data);*/ 19 | while(1) 20 | { 21 | val_stat=inb(KEY_STAT); 22 | if(!(val_stat&bit[1])) break; 23 | } 24 | val_data=167; 25 | outb(val_data,KEY_DAT); 26 | printk(KERN_ALERT " hello world2 \n"); 27 | return 0; 28 | } 29 | 30 | static void hello_exit(void) 31 | { 32 | u8 val_stat,val_data; 33 | while(1) 34 | { 35 | val_stat=inb(KEY_STAT); 36 | if(!(val_stat&bit[1])) break; 37 | } 38 | val_data=168; 39 | outb(val_data,KEY_DAT); 40 | printk(KERN_ALERT " good bye \n"); 41 | } 42 | 43 | module_init(hello_init); 44 | module_exit(hello_exit); 45 | MODULE_LICENSE("GPL"); 46 | MODULE_AUTHOR("KRSir"); 47 | /* 48 | cat /proc/ioports 49 | cat /proc/iomem 50 | rmmod key 51 | */ -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/shutdown/Makefile: -------------------------------------------------------------------------------- 1 | 2 | obj-m += key1.o 3 | 4 | all: 5 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 6 | 7 | clean: 8 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 9 | 10 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/shutdown/key1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #define KEY_STAT 0x60 6 | #define KEY_DAT 0x64 7 | 8 | u8 bit[8]={1,2,4,8,16,32,64,128}; 9 | /* 10 | static void inp_empty() 11 | { 12 | u8 val_stat; 13 | while(1){val_stat=inb(KEY_STAT);if(!(val_stat&bit[1])) break;} 14 | }*/ 15 | static int hello_init(void) 16 | { 17 | printk(KERN_ALERT "hello world \n"); 18 | u8 val_stat,val_data; 19 | 20 | while(1){val_stat=inb(KEY_STAT);if(!(val_stat&bit[1])) break;} 21 | val_data=212;outb(val_data,KEY_DAT);//change to PS2 22 | while(1){val_stat=inb(KEY_STAT);if(!(val_stat&bit[1])) break;} 23 | val_data=244;outb(val_data,KEY_DAT);//to send back movements 24 | while(1){val_stat=inb(KEY_STAT);if(!(val_stat&bit[1])) break;} 25 | 26 | printk(KERN_ALERT " hello world2 \n"); 27 | return 0; 28 | } 29 | 30 | static void hello_exit(void) 31 | { 32 | printk(KERN_ALERT " good bye \n"); 33 | } 34 | 35 | module_init(hello_init); 36 | module_exit(hello_exit); 37 | MODULE_LICENSE("GPL"); 38 | MODULE_AUTHOR("KRSir"); 39 | /* 40 | cat /proc/ioports 41 | cat /proc/iomem 42 | rmmod key 43 | */ -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/MY/shutdown/key1.mod.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | MODULE_INFO(vermagic, VERMAGIC_STRING); 6 | MODULE_INFO(name, KBUILD_MODNAME); 7 | 8 | __visible struct module __this_module 9 | __attribute__((section(".gnu.linkonce.this_module"))) = { 10 | .name = KBUILD_MODNAME, 11 | .init = init_module, 12 | #ifdef CONFIG_MODULE_UNLOAD 13 | .exit = cleanup_module, 14 | #endif 15 | .arch = MODULE_ARCH_INIT, 16 | }; 17 | 18 | static const char __module_depends[] 19 | __used 20 | __attribute__((section(".modinfo"))) = 21 | "depends="; 22 | 23 | 24 | MODULE_INFO(srcversion, "00086835BA28527829DA1DB"); 25 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/1: -------------------------------------------------------------------------------- 1 | creating hotspot 2 | bipasss keyboard 3 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/Device_driver_command_used: -------------------------------------------------------------------------------- 1 | commands used : 2 | 3 | make || make -C /lib/modules/$(uname -4)/build M=$PWD modules // to build module 4 | 5 | lsmod | grep "ex" // ex is prefix of device driver name ,it checks if any driver is loaded 6 | 7 | insmod ./char_dev.ko //ko file ,it inserts module 8 | 9 | cat /proc/devices //all the devices are loaded into the system 10 | 11 | mknod -m 666 /dev/char_dev c 240(major number) 0(minor number) // for giving permissions for Read Write access 12 | 13 | ls -l /dev/char_dev //displays all the permissions of the device 14 | 15 | tail -f /var/log/syslog // device log over the system 16 | 17 | dmesg //display message 18 | 19 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/Makefile: -------------------------------------------------------------------------------- 1 | 2 | obj-m += hello.o 3 | 4 | all: 5 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 6 | 7 | clean: 8 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 9 | 10 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/Makefile (1): -------------------------------------------------------------------------------- 1 | obj-m := char_Dev.o 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/Makefile (2): -------------------------------------------------------------------------------- 1 | 2 | obj-m += tickTock.o 3 | 4 | 5 | all: 6 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 7 | 8 | clean: 9 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 10 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/Module.symvers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Device-Dirvers-2/Programs/Module.symvers -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | static int hello_init(void) 6 | { 7 | printk(KERN_ALERT "hello world \n"); 8 | return 0; 9 | } 10 | 11 | static void hello_exit(void) 12 | { 13 | printk(KERN_ALERT " good bye \n"); 14 | } 15 | 16 | module_init(hello_init); 17 | module_exit(hello_exit); 18 | MODULE_LICENSE("GPL"); 19 | MODULE_AUTHOR("KRSir"); 20 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/modules.order: -------------------------------------------------------------------------------- 1 | kernel//home/bharath/Desktop/KR/Programs/hello.ko 2 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Device-Dirvers-2/Programs/test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #define BUFFER_LENGTH 256 ///< The buffer length (crude but fine) 9 | static char receive[BUFFER_LENGTH]; ///< The receive buffer from the LKM 10 | 11 | int main() 12 | { 13 | int fd=open("/dev/tickTock",O_RDWR); 14 | printf("%d",fd); 15 | char buf[100]; 16 | int c=read(fd,buf,sizeof(100)); 17 | printf("%d out read %s\n",c,buf); 18 | strcat(buf,"30"); 19 | c=write(fd,buf,strlen(buf)); 20 | printf("%d out write \n",c); 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/LDD3e.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/LDD3e.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part1/1-KR-Linux Drivers.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part1/1-KR-Linux Drivers.ppt -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part1/2-intro_linux_device_drivers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part1/2-intro_linux_device_drivers.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part1/3-linux kernel driver.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part1/3-linux kernel driver.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part1/5-kernel-tutorial-2005-full.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part1/5-kernel-tutorial-2005-full.ppt -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part1/Uresh-device-driver1.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part1/Uresh-device-driver1.ppt -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part1/Uresh-device-driver2.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part1/Uresh-device-driver2.ppt -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part2/IOKitFundamentals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part2/IOKitFundamentals.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part2/WritingDeviceDriver.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part2/WritingDeviceDriver.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part2/__MACOSX/MadroidTether/._.DS_Store: -------------------------------------------------------------------------------- 1 | Mac OS X  2Fx ATTRxx -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part2/__MACOSX/MadroidTether/._IOKitFundamentals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part2/__MACOSX/MadroidTether/._IOKitFundamentals.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/Devvice-Drivers-3/Part2/__MACOSX/MadroidTether/._WritingDeviceDriver.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/Devvice-Drivers-3/Part2/__MACOSX/MadroidTether/._WritingDeviceDriver.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/1-KR-Linux Driver-TickTock-2.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/KR - Device - Driver - Delights-I/1-KR-Linux Driver-TickTock-2.ppt -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/1-KR-Linux Driver-TickTock.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/KR - Device - Driver - Delights-I/1-KR-Linux Driver-TickTock.ppt -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/2-KR-Device Driver Programs-2/Device_driver_command_used: -------------------------------------------------------------------------------- 1 | commands used : 2 | 3 | make || make -C /lib/modules/$(uname -4)/build M=$PWD modules // to build module 4 | 5 | lsmod | grep "ex" // ex is prefix of device driver name ,it checks if any driver is loaded 6 | 7 | insmod ./char_dev.ko //ko file ,it inserts module 8 | 9 | cat /proc/devices //all the devices are loaded into the system 10 | 11 | mknod -m 666 /dev/char_dev c 240(major number) 0(minor number) // for giving permissions for Read Write access 12 | 13 | ls -l /dev/char_dev //displays all the permissions of the device 14 | 15 | tail -f /var/log/syslog // device log over the system 16 | 17 | dmesg //display message 18 | 19 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/2-KR-Device Driver Programs-2/Makefile: -------------------------------------------------------------------------------- 1 | 2 | obj-m += hello.o 3 | 4 | all: 5 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 6 | 7 | clean: 8 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 9 | 10 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/2-KR-Device Driver Programs-2/Makefile (1): -------------------------------------------------------------------------------- 1 | obj-m := char_Dev.o 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/2-KR-Device Driver Programs-2/Makefile (2): -------------------------------------------------------------------------------- 1 | 2 | obj-m += tickTock.o 3 | 4 | 5 | all: 6 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 7 | 8 | clean: 9 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 10 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/2-KR-Device Driver Programs-2/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | static int hello_init(void) 6 | { 7 | printk(KERN_ALERT "hello world \n"); 8 | return 0; 9 | } 10 | 11 | static void hello_exit(void) 12 | { 13 | printk(KERN_ALERT " good bye \n"); 14 | } 15 | 16 | module_init(hello_init); 17 | module_exit(hello_exit); 18 | MODULE_LICENSE("GPL"); 19 | MODULE_AUTHOR("KRSir"); 20 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/2-KR-Device Driver Programs-2/test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #define BUFFER_LENGTH 256 ///< The buffer length (crude but fine) 9 | static char receive[BUFFER_LENGTH]; ///< The receive buffer from the LKM 10 | 11 | int main() 12 | { 13 | int fd=open("/dev/tickTock",O_RDWR); 14 | printf("%d",fd); 15 | char buf[100]; 16 | int c=read(fd,buf,sizeof(100)); 17 | printf("%d out read %s\n",c,buf); 18 | strcat(buf,"30"); 19 | c=write(fd,buf,strlen(buf)); 20 | printf("%d out write \n",c); 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/3-KR-DVDs-Lab.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/KR - Device - Driver - Delights-I/3-KR-DVDs-Lab.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/4-A sample Linux Character Device Driver.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/KR - Device - Driver - Delights-I/4-A sample Linux Character Device Driver.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/KR - Device - Driver - Delights-I/5-tutorial-DD.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/KR - Device - Driver - Delights-I/5-tutorial-DD.pdf -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/.basic.ko.cmd: -------------------------------------------------------------------------------- 1 | cmd_/home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 --build-id -T ./scripts/module-common.lds -o /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.ko /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.o /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.mod.o; true 2 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/.basic.mod.cmd: -------------------------------------------------------------------------------- 1 | cmd_/home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.mod := { echo /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.o; echo; } > /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.mod 2 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/Makefile: -------------------------------------------------------------------------------- 1 | obj-m += basic.o 2 | 3 | KERNELDIR ?= /lib/modules/$(shell uname -r)/build 4 | 5 | all: 6 | $(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules 7 | clean: 8 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/Module.symvers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/basic/Module.symvers -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/basic.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | /*MODULE_LICENSE("Dual BSD/GPL");*/ 4 | static int hello_init(void) 5 | { 6 | printk(KERN_ALERT "Hello, world\n"); 7 | return 0; 8 | } 9 | static void hello_exit(void) 10 | { 11 | printk(KERN_ALERT "Goodbye, cruel world\n"); 12 | } 13 | module_init(hello_init); 14 | module_exit(hello_exit); -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/basic.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/basic/basic.ko -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/basic.mod: -------------------------------------------------------------------------------- 1 | /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.o 2 | 3 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/basic.mod.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | BUILD_SALT; 7 | 8 | MODULE_INFO(vermagic, VERMAGIC_STRING); 9 | MODULE_INFO(name, KBUILD_MODNAME); 10 | 11 | __visible struct module __this_module 12 | __section(.gnu.linkonce.this_module) = { 13 | .name = KBUILD_MODNAME, 14 | .init = init_module, 15 | #ifdef CONFIG_MODULE_UNLOAD 16 | .exit = cleanup_module, 17 | #endif 18 | .arch = MODULE_ARCH_INIT, 19 | }; 20 | 21 | #ifdef CONFIG_RETPOLINE 22 | MODULE_INFO(retpoline, "Y"); 23 | #endif 24 | 25 | MODULE_INFO(depends, ""); 26 | 27 | 28 | MODULE_INFO(srcversion, "D86B7F7454022E55A37D035"); 29 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/basic.mod.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/basic/basic.mod.o -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/basic.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/basic/basic.o -------------------------------------------------------------------------------- /Device_driver_Assignment_11/basic/modules.order: -------------------------------------------------------------------------------- 1 | /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/basic.ko 2 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/.chardev.ko.cmd: -------------------------------------------------------------------------------- 1 | cmd_/home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 --build-id -T ./scripts/module-common.lds -o /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.ko /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.o /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.mod.o; true 2 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/.chardev.mod.cmd: -------------------------------------------------------------------------------- 1 | cmd_/home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.mod := { echo /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.o; echo; } > /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.mod 2 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/Makefile: -------------------------------------------------------------------------------- 1 | MODULE_NAME=chardev 2 | obj-m := ${MODULE_NAME}.o 3 | all: 4 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 5 | clean: 6 | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/Module.symvers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/chardev/Module.symvers -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/chardev.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/chardev/chardev.ko -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/chardev.mod: -------------------------------------------------------------------------------- 1 | /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.o 2 | 3 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/chardev.mod.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | BUILD_SALT; 7 | 8 | MODULE_INFO(vermagic, VERMAGIC_STRING); 9 | MODULE_INFO(name, KBUILD_MODNAME); 10 | 11 | __visible struct module __this_module 12 | __section(.gnu.linkonce.this_module) = { 13 | .name = KBUILD_MODNAME, 14 | .init = init_module, 15 | #ifdef CONFIG_MODULE_UNLOAD 16 | .exit = cleanup_module, 17 | #endif 18 | .arch = MODULE_ARCH_INIT, 19 | }; 20 | 21 | #ifdef CONFIG_RETPOLINE 22 | MODULE_INFO(retpoline, "Y"); 23 | #endif 24 | 25 | MODULE_INFO(depends, ""); 26 | 27 | 28 | MODULE_INFO(srcversion, "E94B6A6FE6B06C756A7B5E5"); 29 | -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/chardev.mod.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/chardev/chardev.mod.o -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/chardev.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Device_driver_Assignment_11/chardev/chardev.o -------------------------------------------------------------------------------- /Device_driver_Assignment_11/chardev/modules.order: -------------------------------------------------------------------------------- 1 | /home/abhishek/Desktop/Computer-Networks-Assignments/Device_driver_Assignment_11/chardev/chardev.ko 2 | -------------------------------------------------------------------------------- /End_lab_exam/CN-EndSem-Lab-2021-Qs-1-8 and Q14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/CN-EndSem-Lab-2021-Qs-1-8 and Q14.pdf -------------------------------------------------------------------------------- /End_lab_exam/CN-EndSem-Lab-2021Qs-9-13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/CN-EndSem-Lab-2021Qs-9-13.pdf -------------------------------------------------------------------------------- /End_lab_exam/ques_1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/1.png -------------------------------------------------------------------------------- /End_lab_exam/ques_1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/2.png -------------------------------------------------------------------------------- /End_lab_exam/ques_1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/3.png -------------------------------------------------------------------------------- /End_lab_exam/ques_1/capitalize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/capitalize -------------------------------------------------------------------------------- /End_lab_exam/ques_1/capitalize.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int main() 8 | { 9 | char buff[1024]; 10 | read(0,buff,sizeof(buff)); 11 | int i=0; 12 | while(buff[i]!='\0') 13 | { 14 | if(buff[i]>='a' && buff[i]<='z') 15 | { 16 | buff[i]=toupper(buff[i]); 17 | } 18 | i++; 19 | } 20 | printf("%s",buff); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /End_lab_exam/ques_1/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/client -------------------------------------------------------------------------------- /End_lab_exam/ques_1/config.txt: -------------------------------------------------------------------------------- 1 | NAME PROTOCOL TYPE PORT PATH 2 | capitalize tcp external 8000 ./capitalize 3 | math tcp external 8001 ./math -------------------------------------------------------------------------------- /End_lab_exam/ques_1/math: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/math -------------------------------------------------------------------------------- /End_lab_exam/ques_1/n2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/n2 -------------------------------------------------------------------------------- /End_lab_exam/ques_1/nitnetd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/nitnetd -------------------------------------------------------------------------------- /End_lab_exam/ques_1/supserver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/End_lab_exam/ques_1/supserver -------------------------------------------------------------------------------- /Everything till now:Assignment_7/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "stat.h": "c", 4 | "ipc.h": "c", 5 | "wait.h": "c", 6 | "poll.h": "c", 7 | "in.h": "c", 8 | "inet.h": "c" 9 | } 10 | } -------------------------------------------------------------------------------- /Everything till now:Assignment_7/C1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Everything till now:Assignment_7/C1 -------------------------------------------------------------------------------- /Everything till now:Assignment_7/C1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | char* c1 = "c1"; 24 | 25 | int main() 26 | { 27 | mkfifo(c1,0666); 28 | while(1) 29 | { 30 | char buf[1024]; 31 | 32 | fgets(buf,1024,stdin); 33 | 34 | int fd1 = open(c1,O_RDWR); 35 | write(fd1,buf,sizeof(buf)); 36 | 37 | fflush(fdopen(fd1,"r+")); 38 | close(fd1); 39 | } 40 | return 0; 41 | } 42 | -------------------------------------------------------------------------------- /Everything till now:Assignment_7/C2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Everything till now:Assignment_7/C2 -------------------------------------------------------------------------------- /Everything till now:Assignment_7/C2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | char* c2 = "c2"; 24 | 25 | int main() 26 | { 27 | mkfifo(c2,0666); 28 | while(1) 29 | { 30 | char buf[1024]; 31 | 32 | fgets(buf,1024,stdin); 33 | 34 | int fd2 = open(c2,O_RDWR); 35 | write(fd2,buf,sizeof(buf)); 36 | 37 | fflush(fdopen(fd2,"r+")); 38 | 39 | close(fd2); 40 | } 41 | 42 | return 0; 43 | } 44 | -------------------------------------------------------------------------------- /Everything till now:Assignment_7/D: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Everything till now:Assignment_7/D -------------------------------------------------------------------------------- /Everything till now:Assignment_7/Output.mkv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Everything till now:Assignment_7/Output.mkv -------------------------------------------------------------------------------- /Everything till now:Assignment_7/S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Everything till now:Assignment_7/S -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "iostream": "cpp", 4 | "mathspecs.h": "c" 5 | } 6 | } -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/Hamming_Code/hamm_code_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/Hamming_Code/hamm_code_check.png -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/Hamming_Code/hamming_code_check: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/Hamming_Code/hamming_code_check -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/Hamming_Code/hamming_code_gen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/Hamming_Code/hamming_code_gen -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/Hamming_Code/hamming_code_gen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/Hamming_Code/hamming_code_gen.png -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/RPC-notes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/RPC-notes.pdf -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/Makefile.calc: -------------------------------------------------------------------------------- 1 | 2 | # This is a template Makefile generated by rpcgen 3 | 4 | # Parameters 5 | 6 | CLIENT = calc_client 7 | SERVER = calc_server 8 | 9 | SOURCES_CLNT.c = 10 | SOURCES_CLNT.h = 11 | SOURCES_SVC.c = 12 | SOURCES_SVC.h = 13 | SOURCES.x = calc.x 14 | 15 | TARGETS_SVC.c = calc_svc.c calc_server.c calc_xdr.c 16 | TARGETS_CLNT.c = calc_clnt.c calc_client.c calc_xdr.c 17 | TARGETS = calc.h calc_xdr.c calc_clnt.c calc_svc.c calc_client.c calc_server.c 18 | 19 | OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) 20 | OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) 21 | # Compiler flags 22 | 23 | CFLAGS += -g 24 | LDLIBS += -lnsl 25 | RPCGENFLAGS = 26 | 27 | # Targets 28 | 29 | all : $(CLIENT) $(SERVER) 30 | 31 | $(TARGETS) : $(SOURCES.x) 32 | rpcgen $(RPCGENFLAGS) $(SOURCES.x) 33 | 34 | $(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) 35 | 36 | $(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) 37 | 38 | $(CLIENT) : $(OBJECTS_CLNT) 39 | $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) 40 | 41 | $(SERVER) : $(OBJECTS_SVC) 42 | $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) 43 | 44 | clean: 45 | $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) 46 | 47 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc.x: -------------------------------------------------------------------------------- 1 | /*The IDL File --- name IDL.x*/ 2 | 3 | /*Structure to hold the 2 values to be used in computation*/ 4 | 5 | struct values{ 6 | float num1; 7 | float num2; 8 | char operation; 9 | }; 10 | 11 | /*Programme, version and procedure definition*/ 12 | 13 | program COMPUTE{ 14 | version COMPUTE_VERS{ 15 | float ADD(values) =1; 16 | float SUB(values)=2; 17 | float MUL(values)=3; 18 | float DIV(values)=4; 19 | } =6; 20 | 21 | } = 456123789; -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_client -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_client.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_clnt.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_clnt.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_server -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_server.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "calc.h" 8 | #include 9 | 10 | float * 11 | add_6_svc(values *argp, struct svc_req *rqstp) 12 | { 13 | static float result; 14 | result = argp->num1 + argp->num2; 15 | return &result; 16 | } 17 | 18 | float * 19 | sub_6_svc(values *argp, struct svc_req *rqstp) 20 | { 21 | static float result; 22 | result = argp->num1 - argp->num2; 23 | return &result; 24 | } 25 | 26 | float * 27 | mul_6_svc(values *argp, struct svc_req *rqstp) 28 | { 29 | static float result; 30 | result = argp->num1 * argp->num2; 31 | return &result; 32 | } 33 | 34 | float * 35 | div_6_svc(values *argp, struct svc_req *rqstp) 36 | { 37 | static float result; 38 | result = argp->num1 / argp->num2; 39 | return &result; 40 | 41 | 42 | } -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_server.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_svc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_svc.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_xdr.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include "calc.h" 7 | 8 | bool_t 9 | xdr_values (XDR *xdrs, values *objp) 10 | { 11 | register int32_t *buf; 12 | 13 | if (!xdr_float (xdrs, &objp->num1)) 14 | return FALSE; 15 | if (!xdr_float (xdrs, &objp->num2)) 16 | return FALSE; 17 | if (!xdr_char (xdrs, &objp->operation)) 18 | return FALSE; 19 | return TRUE; 20 | } 21 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_xdr.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/calc_xdr.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_calc/rpc_calc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_calc/rpc_calc.png -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/Makefile.MathSpec: -------------------------------------------------------------------------------- 1 | 2 | # This is a template Makefile generated by rpcgen 3 | 4 | # Parameters 5 | 6 | CLIENT = MathSpec_client 7 | SERVER = MathSpec_server 8 | 9 | SOURCES_CLNT.c = 10 | SOURCES_CLNT.h = 11 | SOURCES_SVC.c = 12 | SOURCES_SVC.h = 13 | SOURCES.x = MathSpec.x 14 | 15 | TARGETS_SVC.c = MathSpec_svc.c MathSpec_server.c MathSpec_xdr.c 16 | TARGETS_CLNT.c = MathSpec_clnt.c MathSpec_client.c MathSpec_xdr.c 17 | TARGETS = MathSpec.h MathSpec_xdr.c MathSpec_clnt.c MathSpec_svc.c MathSpec_client.c MathSpec_server.c 18 | 19 | OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) 20 | OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) 21 | # Compiler flags 22 | 23 | CFLAGS += -g 24 | LDLIBS += -lnsl 25 | RPCGENFLAGS = 26 | 27 | # Targets 28 | 29 | all : $(CLIENT) $(SERVER) 30 | 31 | $(TARGETS) : $(SOURCES.x) 32 | rpcgen $(RPCGENFLAGS) $(SOURCES.x) 33 | 34 | $(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) 35 | 36 | $(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) 37 | 38 | $(CLIENT) : $(OBJECTS_CLNT) 39 | $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) 40 | 41 | $(SERVER) : $(OBJECTS_SVC) 42 | $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) 43 | 44 | clean: 45 | $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) 46 | 47 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathClient.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "MathSpec.h" 3 | 4 | int main(int argc, char const *argv[]) 5 | { 6 | if(argc<2) 7 | { 8 | printf("Usage: ./mathclient [HOST_NAME]\n"); 9 | exit(0); 10 | } 11 | CLIENT* cl; 12 | operations ops,*rtn; 13 | cl = clnt_create(argv[1],MATHPROG,INITIAL,"tcp"); 14 | while(1) 15 | { 16 | printf("Enter the operations\n"); 17 | scanf("%d",&(ops.operation)); 18 | switch(ops.operation) 19 | { 20 | case 1: 21 | case 2: 22 | case 3: 23 | case 4: 24 | printf("Enter two operands\n"); 25 | scanf("%d%d",&(ops.op1),&(ops.op2)); 26 | break; 27 | case 5: 28 | printf("Enter the length"); 29 | scanf("%d",&(ops.len)); 30 | printf("Enter the elements\n"); 31 | for(int i=0;ioperation){ 43 | case 1: 44 | case 2: 45 | case 3: 46 | case 4: 47 | printf("Result: %d\n",rtn->result); 48 | break; 49 | case 5: 50 | for(int i=0;ilen;i++) 51 | printf("%d,", rtn->arr[i]); 52 | printf("\n"); 53 | break; 54 | } 55 | } 56 | // mathproc_1(operations *, CLIENT *); 57 | } 58 | return 0; 59 | } -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathServer.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "MathSpec.h" 3 | 4 | operations * mathproc_1_svc(operations *inp, struct svc_req *svc) 5 | { 6 | static operations rtn; 7 | rtn = *inp; 8 | switch(rtn.operation) 9 | { 10 | case 1: 11 | rtn.result = rtn.op1+rtn.op2; 12 | break; 13 | case 2: 14 | rtn.result = rtn.op1-rtn.op2; 15 | break; 16 | case 3: 17 | rtn.result = rtn.op1*rtn.op2; 18 | break; 19 | case 4: 20 | rtn.result = rtn.op1/rtn.op2; 21 | case 5: 22 | for(int i=1;i0;j--) 25 | { 26 | if(rtn.arr[j] 10 | 11 | 12 | #ifdef __cplusplus 13 | extern "C" { 14 | #endif 15 | 16 | 17 | struct operations { 18 | int op1; 19 | int op2; 20 | int arr[20]; 21 | int len; 22 | int result; 23 | int operation; 24 | }; 25 | typedef struct operations operations; 26 | 27 | #define MATHPROG 0x21111111 28 | #define INITIAL 1 29 | 30 | #if defined(__STDC__) || defined(__cplusplus) 31 | #define MATHPROC 1 32 | extern operations * mathproc_1(operations *, CLIENT *); 33 | extern operations * mathproc_1_svc(operations *, struct svc_req *); 34 | extern int mathprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); 35 | 36 | #else /* K&R C */ 37 | #define MATHPROC 1 38 | extern operations * mathproc_1(); 39 | extern operations * mathproc_1_svc(); 40 | extern int mathprog_1_freeresult (); 41 | #endif /* K&R C */ 42 | 43 | /* the xdr functions */ 44 | 45 | #if defined(__STDC__) || defined(__cplusplus) 46 | extern bool_t xdr_operations (XDR *, operations*); 47 | 48 | #else /* K&R C */ 49 | extern bool_t xdr_operations (); 50 | 51 | #endif /* K&R C */ 52 | 53 | #ifdef __cplusplus 54 | } 55 | #endif 56 | 57 | #endif /* !_MATHSPEC_H_RPCGEN */ 58 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec.x: -------------------------------------------------------------------------------- 1 | struct operations 2 | { 3 | int op1; 4 | int op2; 5 | int arr[20]; 6 | int len; 7 | int result; 8 | int operation; 9 | }; 10 | 11 | program MATHPROG 12 | { 13 | version INITIAL 14 | { 15 | operations MATHPROC(operations) = 1; 16 | } = 1; 17 | } = 0x21111111; -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_client -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_client.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_clnt.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include /* for memset */ 7 | #include "MathSpec.h" 8 | 9 | /* Default timeout can be changed using clnt_control() */ 10 | static struct timeval TIMEOUT = { 25, 0 }; 11 | 12 | operations * 13 | mathproc_1(operations *argp, CLIENT *clnt) 14 | { 15 | static operations clnt_res; 16 | 17 | memset((char *)&clnt_res, 0, sizeof(clnt_res)); 18 | if (clnt_call (clnt, MATHPROC, 19 | (xdrproc_t) xdr_operations, (caddr_t) argp, 20 | (xdrproc_t) xdr_operations, (caddr_t) &clnt_res, 21 | TIMEOUT) != RPC_SUCCESS) { 22 | return (NULL); 23 | } 24 | return (&clnt_res); 25 | } 26 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_clnt.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_clnt.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_server -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_math/MathSpec_server.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "MathSpec.h" 8 | 9 | operations * 10 | mathproc_1_svc(operations *inp, struct svc_req *svc) 11 | { 12 | static operations rtn; 13 | rtn = *inp; 14 | switch(rtn.operation) 15 | { 16 | case 1: 17 | rtn.result = rtn.op1+rtn.op2; 18 | break; 19 | case 2: 20 | rtn.result = rtn.op1-rtn.op2; 21 | break; 22 | case 3: 23 | rtn.result = rtn.op1*rtn.op2; 24 | break; 25 | case 4: 26 | rtn.result = rtn.op1/rtn.op2; 27 | case 5: 28 | for(int i=1;i0;j--) 31 | { 32 | if(rtn.arr[j] 2 | #include 3 | #include "square.h" 4 | int main() 5 | { 6 | CLIENT *c1; 7 | in inp; 8 | out *outp; 9 | c1=clnt_create("127.0.0.1",ADD_PROG,ADD_VERS,"tcp"); 10 | printf("Enter the number\n"); 11 | scanf("%ld %ld",&inp.num1,&inp.num2); 12 | outp=addproc_1(&inp,c1); 13 | if(outp!=NULL) 14 | printf("The digit sum value is %d\n",outp->res); 15 | exit(0); 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #ifndef _DIGSUM_H_RPCGEN 7 | #define _DIGSUM_H_RPCGEN 8 | 9 | #include 10 | 11 | 12 | #ifdef __cplusplus 13 | extern "C" { 14 | #endif 15 | 16 | 17 | struct in { 18 | long num1; 19 | long num2; 20 | }; 21 | typedef struct in in; 22 | 23 | struct out { 24 | long res; 25 | }; 26 | typedef struct out out; 27 | 28 | #define ADD_PROG 0x3123000 29 | #define ADD_VERS 1 30 | 31 | #if defined(__STDC__) || defined(__cplusplus) 32 | #define ADDPROC 1 33 | extern out * addproc_1(in *, CLIENT *); 34 | extern out * addproc_1_svc(in *, struct svc_req *); 35 | extern int add_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); 36 | 37 | #else /* K&R C */ 38 | #define ADDPROC 1 39 | extern out * addproc_1(); 40 | extern out * addproc_1_svc(); 41 | extern int add_prog_1_freeresult (); 42 | #endif /* K&R C */ 43 | 44 | /* the xdr functions */ 45 | 46 | #if defined(__STDC__) || defined(__cplusplus) 47 | extern bool_t xdr_in (XDR *, in*); 48 | extern bool_t xdr_out (XDR *, out*); 49 | 50 | #else /* K&R C */ 51 | extern bool_t xdr_in (); 52 | extern bool_t xdr_out (); 53 | 54 | #endif /* K&R C */ 55 | 56 | #ifdef __cplusplus 57 | } 58 | #endif 59 | 60 | #endif /* !_DIGSUM_H_RPCGEN */ 61 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum.png -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum.x: -------------------------------------------------------------------------------- 1 | struct in{ 2 | long int num1; 3 | long int num2; 4 | }; 5 | struct out{ 6 | long int res; 7 | }; 8 | program ADD_PROG 9 | { 10 | version ADD_VERS 11 | { 12 | out ADDPROC(in)=1; 13 | } =1; 14 | }= 0x3123000; 15 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_client -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_client.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "digsum.h" 8 | 9 | 10 | void 11 | add_prog_1(char *host) 12 | { 13 | CLIENT *clnt; 14 | out *result_1; 15 | in addproc_1_arg; 16 | 17 | #ifndef DEBUG 18 | clnt = clnt_create (host, ADD_PROG, ADD_VERS, "udp"); 19 | if (clnt == NULL) { 20 | clnt_pcreateerror (host); 21 | exit (1); 22 | } 23 | #endif /* DEBUG */ 24 | 25 | printf("Enter the number\n"); 26 | scanf("%ld %ld",&addproc_1_arg.num1,&addproc_1_arg.num2); 27 | 28 | result_1 = addproc_1(&addproc_1_arg, clnt); 29 | if (result_1 == (out *) NULL) { 30 | clnt_perror (clnt, "call failed"); 31 | } 32 | else 33 | printf("The digit sum value is %ld\n",result_1->res); 34 | #ifndef DEBUG 35 | clnt_destroy (clnt); 36 | #endif /* DEBUG */ 37 | } 38 | 39 | 40 | int 41 | main (int argc, char *argv[]) 42 | { 43 | char *host; 44 | 45 | if (argc < 2) { 46 | printf ("usage: %s server_host\n", argv[0]); 47 | exit (1); 48 | } 49 | host = argv[1]; 50 | add_prog_1 (host); 51 | exit (0); 52 | } 53 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_client.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_clnt.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include /* for memset */ 7 | #include "digsum.h" 8 | 9 | /* Default timeout can be changed using clnt_control() */ 10 | static struct timeval TIMEOUT = { 25, 0 }; 11 | 12 | out * 13 | addproc_1(in *argp, CLIENT *clnt) 14 | { 15 | static out clnt_res; 16 | 17 | memset((char *)&clnt_res, 0, sizeof(clnt_res)); 18 | if (clnt_call (clnt, ADDPROC, 19 | (xdrproc_t) xdr_in, (caddr_t) argp, 20 | (xdrproc_t) xdr_out, (caddr_t) &clnt_res, 21 | TIMEOUT) != RPC_SUCCESS) { 22 | return (NULL); 23 | } 24 | return (&clnt_res); 25 | } 26 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_clnt.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_clnt.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_server -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_server.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "digsum.h" 8 | #include 9 | 10 | out * 11 | addproc_1_svc(in *inp, struct svc_req *rqstp) 12 | { 13 | static out output; 14 | 15 | long int n1=inp->num1; 16 | long int n2=inp->num2; 17 | long int sm1=0; 18 | long int sm2=0; 19 | while(n1) 20 | { 21 | sm1+=n1%10; 22 | n1/=10; 23 | } 24 | while(n2) 25 | { 26 | sm2+=n2%10; 27 | n2/=10; 28 | } 29 | output.res=sm1+sm2; 30 | return (&output); 31 | } 32 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_server.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_svc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_svc.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_xdr.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include "digsum.h" 7 | 8 | bool_t 9 | xdr_in (XDR *xdrs, in *objp) 10 | { 11 | register int32_t *buf; 12 | 13 | if (!xdr_long (xdrs, &objp->num1)) 14 | return FALSE; 15 | if (!xdr_long (xdrs, &objp->num2)) 16 | return FALSE; 17 | return TRUE; 18 | } 19 | 20 | bool_t 21 | xdr_out (XDR *xdrs, out *objp) 22 | { 23 | register int32_t *buf; 24 | 25 | if (!xdr_long (xdrs, &objp->res)) 26 | return FALSE; 27 | return TRUE; 28 | } 29 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_xdr.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_practice/digsum_xdr.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_practice/server.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "add.h" 4 | addproc_1_svc(in *inp,struct svc_req *rqstp) 5 | { 6 | static out fin; 7 | 8 | long int n1=inp->num1; 9 | long int n2=inp->num2 10 | long int sm1=0; 11 | long int sm2=0; 12 | while(n1) 13 | { 14 | sm1+=n1%10; 15 | n1/=10; 16 | } 17 | while(n2) 18 | { 19 | sm2+=n2%10; 20 | n2/=10; 21 | } 22 | fin->res=sm1+sm2; 23 | return (&out); 24 | } 25 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/Makefile.square: -------------------------------------------------------------------------------- 1 | 2 | # This is a template Makefile generated by rpcgen 3 | 4 | # Parameters 5 | 6 | CLIENT = square_client 7 | SERVER = square_server 8 | 9 | SOURCES_CLNT.c = 10 | SOURCES_CLNT.h = 11 | SOURCES_SVC.c = 12 | SOURCES_SVC.h = 13 | SOURCES.x = square.x 14 | 15 | TARGETS_SVC.c = square_svc.c square_server.c square_xdr.c 16 | TARGETS_CLNT.c = square_clnt.c square_client.c square_xdr.c 17 | TARGETS = square.h square_xdr.c square_clnt.c square_svc.c square_client.c square_server.c 18 | 19 | OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) 20 | OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) 21 | # Compiler flags 22 | 23 | CFLAGS += -g 24 | LDLIBS += -lnsl 25 | RPCGENFLAGS = 26 | 27 | # Targets 28 | 29 | all : $(CLIENT) $(SERVER) 30 | 31 | $(TARGETS) : $(SOURCES.x) 32 | rpcgen $(RPCGENFLAGS) $(SOURCES.x) 33 | 34 | $(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) 35 | 36 | $(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) 37 | 38 | $(CLIENT) : $(OBJECTS_CLNT) 39 | $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) 40 | 41 | $(SERVER) : $(OBJECTS_SVC) 42 | $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) 43 | 44 | clean: 45 | $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) 46 | 47 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/client.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "square.h" 4 | int main(int argc, char **argv) 5 | { 6 | CLIENT *c1; 7 | square_in in; 8 | square_out *outp; 9 | c1=clnt_create(argv[1],SQUARE_PROG,SQUARE_VERS,"tcp"); 10 | printf("Enter the number\n"); 11 | scanf("%ld",&in.arg1); 12 | outp=squareproc_1(&in,c1); 13 | if(outp!=NULL) 14 | printf("The square value is %d\n",outp->res1); 15 | exit(0); 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/server.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "square.h" 4 | square_out * squareproc_1_svc(square_in *inp,struct svc_req *rqstp) 5 | { 6 | static square_out out; 7 | out.res1=inp->arg1*inp->arg1; 8 | return (&out); 9 | } 10 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square.x: -------------------------------------------------------------------------------- 1 | struct square_in 2 | { 3 | long arg1; 4 | }; 5 | struct square_out 6 | { 7 | long res1; 8 | }; 9 | program SQUARE_PROG 10 | { 11 | version SQUARE_VERS 12 | { 13 | square_out SQUAREPROC(square_in)=1; 14 | } =1; 15 | }= 0x3123000; 16 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_client -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_client.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "square.h" 8 | 9 | 10 | void square_prog_1(char *host) 11 | { 12 | CLIENT *clnt; 13 | square_out *result_1; 14 | square_in squareproc_1_arg; 15 | 16 | #ifndef DEBUG 17 | clnt = clnt_create (host, SQUARE_PROG, SQUARE_VERS, "udp"); 18 | if (clnt == NULL) { 19 | clnt_pcreateerror (host); 20 | exit (1); 21 | } 22 | #endif /* DEBUG */ 23 | 24 | printf("Enter the number: "); 25 | scanf("%ld",&squareproc_1_arg.arg1); 26 | 27 | result_1 = squareproc_1(&squareproc_1_arg, clnt); 28 | if (result_1 == (square_out *) NULL) { 29 | clnt_perror (clnt, "call failed"); 30 | } 31 | else 32 | printf("The result is: %ld\n",result_1->res1); 33 | #ifndef DEBUG 34 | clnt_destroy (clnt); 35 | #endif /* DEBUG */ 36 | } 37 | 38 | 39 | int main (int argc, char *argv[]) 40 | { 41 | char *host; 42 | 43 | if (argc < 2) { 44 | printf ("usage: %s server_host\n", argv[0]); 45 | exit (1); 46 | } 47 | host = argv[1]; 48 | while(1) 49 | { 50 | square_prog_1 (host); 51 | } 52 | 53 | exit (0); 54 | } 55 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_client.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_clnt.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include /* for memset */ 7 | #include "square.h" 8 | 9 | /* Default timeout can be changed using clnt_control() */ 10 | static struct timeval TIMEOUT = { 25, 0 }; 11 | 12 | square_out * 13 | squareproc_1(square_in *argp, CLIENT *clnt) 14 | { 15 | static square_out clnt_res; 16 | 17 | memset((char *)&clnt_res, 0, sizeof(clnt_res)); 18 | if (clnt_call (clnt, SQUAREPROC, 19 | (xdrproc_t) xdr_square_in, (caddr_t) argp, 20 | (xdrproc_t) xdr_square_out, (caddr_t) &clnt_res, 21 | TIMEOUT) != RPC_SUCCESS) { 22 | return (NULL); 23 | } 24 | return (&clnt_res); 25 | } 26 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_clnt.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_clnt.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_server -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_server.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "square.h" 8 | 9 | square_out * 10 | squareproc_1_svc(square_in *inp, struct svc_req *rqstp) 11 | { 12 | static square_out out; 13 | 14 | out.res1=inp->arg1*inp->arg1; 15 | 16 | return &out; 17 | } 18 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_server.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_svc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_svc.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_xdr.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include "square.h" 7 | 8 | bool_t 9 | xdr_square_in (XDR *xdrs, square_in *objp) 10 | { 11 | register int32_t *buf; 12 | 13 | if (!xdr_long (xdrs, &objp->arg1)) 14 | return FALSE; 15 | return TRUE; 16 | } 17 | 18 | bool_t 19 | xdr_square_out (XDR *xdrs, square_out *objp) 20 | { 21 | register int32_t *buf; 22 | 23 | if (!xdr_long (xdrs, &objp->res1)) 24 | return FALSE; 25 | return TRUE; 26 | } 27 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_xdr.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/rpc_squaring/square_xdr.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/Makefile.square: -------------------------------------------------------------------------------- 1 | 2 | # This is a template Makefile generated by rpcgen 3 | 4 | # Parameters 5 | 6 | CLIENT = square_client 7 | SERVER = square_server 8 | 9 | SOURCES_CLNT.c = 10 | SOURCES_CLNT.h = 11 | SOURCES_SVC.c = 12 | SOURCES_SVC.h = 13 | SOURCES.x = square.x 14 | 15 | TARGETS_SVC.c = square_svc.c square_server.c square_xdr.c 16 | TARGETS_CLNT.c = square_clnt.c square_client.c square_xdr.c 17 | TARGETS = square.h square_xdr.c square_clnt.c square_svc.c square_client.c square_server.c 18 | 19 | OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) 20 | OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) 21 | # Compiler flags 22 | 23 | CFLAGS += -g 24 | LDLIBS += -lnsl 25 | RPCGENFLAGS = 26 | 27 | # Targets 28 | 29 | all : $(CLIENT) $(SERVER) 30 | 31 | $(TARGETS) : $(SOURCES.x) 32 | rpcgen $(RPCGENFLAGS) $(SOURCES.x) 33 | 34 | $(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) 35 | 36 | $(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) 37 | 38 | $(CLIENT) : $(OBJECTS_CLNT) 39 | $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) 40 | 41 | $(SERVER) : $(OBJECTS_SVC) 42 | $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) 43 | 44 | clean: 45 | $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) 46 | 47 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/client.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "square.h" 4 | int main() 5 | { 6 | CLIENT *c1; 7 | square_in in; 8 | square_out *outp; 9 | c1=clnt_create("127.0.0.1",SQUARE_PROG,SQUARE_VERS,"tcp"); 10 | printf("Enter the number\n"); 11 | scanf("%ld",&in.arg1); 12 | outp=squareproc_1(&in,c1); 13 | if(outp!=NULL) 14 | printf("The square value is %d\n",outp->res1); 15 | exit(0); 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/server.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "square.h" 4 | square_out * squareproc_1_svc(square_in *inp,struct svc_req *rqstp) 5 | { 6 | static square_out out; 7 | out.res1=inp->arg1*inp->arg1; 8 | return (&out); 9 | } 10 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square.x: -------------------------------------------------------------------------------- 1 | struct square_in 2 | { 3 | long arg1; 4 | }; 5 | struct square_out 6 | { 7 | long res1; 8 | }; 9 | program SQUARE_PROG 10 | { 11 | version SQUARE_VERS 12 | { 13 | square_out SQUAREPROC(square_in)=1; 14 | } =1; 15 | }= 0x3123000; 16 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/test/square_client -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_client.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "square.h" 8 | 9 | 10 | void 11 | square_prog_1(char *host) 12 | { 13 | CLIENT *clnt; 14 | square_out *result_1; 15 | square_in squareproc_1_arg; 16 | 17 | #ifndef DEBUG 18 | clnt = clnt_create (host, SQUARE_PROG, SQUARE_VERS, "udp"); 19 | if (clnt == NULL) { 20 | clnt_pcreateerror (host); 21 | exit (1); 22 | } 23 | #endif /* DEBUG */ 24 | 25 | result_1 = squareproc_1(&squareproc_1_arg, clnt); 26 | if (result_1 == (square_out *) NULL) { 27 | clnt_perror (clnt, "call failed"); 28 | } 29 | #ifndef DEBUG 30 | clnt_destroy (clnt); 31 | #endif /* DEBUG */ 32 | } 33 | 34 | 35 | int 36 | main (int argc, char *argv[]) 37 | { 38 | char *host; 39 | 40 | if (argc < 2) { 41 | printf ("usage: %s server_host\n", argv[0]); 42 | exit (1); 43 | } 44 | host = argv[1]; 45 | square_prog_1 (host); 46 | exit (0); 47 | } 48 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/test/square_client.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_clnt.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include /* for memset */ 7 | #include "square.h" 8 | 9 | /* Default timeout can be changed using clnt_control() */ 10 | static struct timeval TIMEOUT = { 25, 0 }; 11 | 12 | square_out * 13 | squareproc_1(square_in *argp, CLIENT *clnt) 14 | { 15 | static square_out clnt_res; 16 | 17 | memset((char *)&clnt_res, 0, sizeof(clnt_res)); 18 | if (clnt_call (clnt, SQUAREPROC, 19 | (xdrproc_t) xdr_square_in, (caddr_t) argp, 20 | (xdrproc_t) xdr_square_out, (caddr_t) &clnt_res, 21 | TIMEOUT) != RPC_SUCCESS) { 22 | return (NULL); 23 | } 24 | return (&clnt_res); 25 | } 26 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_clnt.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/test/square_clnt.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/test/square_server -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_server.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is sample code generated by rpcgen. 3 | * These are only templates and you can use them 4 | * as a guideline for developing your own functions. 5 | */ 6 | 7 | #include "square.h" 8 | 9 | square_out * 10 | squareproc_1_svc(square_in *argp, struct svc_req *rqstp) 11 | { 12 | static square_out result; 13 | 14 | /* 15 | * insert server code here 16 | */ 17 | 18 | return &result; 19 | } 20 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/test/square_server.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_svc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/test/square_svc.o -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_xdr.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Please do not edit this file. 3 | * It was generated using rpcgen. 4 | */ 5 | 6 | #include "square.h" 7 | 8 | bool_t 9 | xdr_square_in (XDR *xdrs, square_in *objp) 10 | { 11 | register int32_t *buf; 12 | 13 | if (!xdr_long (xdrs, &objp->arg1)) 14 | return FALSE; 15 | return TRUE; 16 | } 17 | 18 | bool_t 19 | xdr_square_out (XDR *xdrs, square_out *objp) 20 | { 21 | register int32_t *buf; 22 | 23 | if (!xdr_long (xdrs, &objp->res1)) 24 | return FALSE; 25 | return TRUE; 26 | } 27 | -------------------------------------------------------------------------------- /Hamming_code_RPC_Assignment_19/rpc/test/square_xdr.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Hamming_code_RPC_Assignment_19/rpc/test/square_xdr.o -------------------------------------------------------------------------------- /INETD_Assignment_18/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "system_error": "c", 4 | "socket.h": "c" 5 | } 6 | } -------------------------------------------------------------------------------- /INETD_Assignment_18/dynamic_inetd/capitalize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/dynamic_inetd/capitalize -------------------------------------------------------------------------------- /INETD_Assignment_18/dynamic_inetd/capitalize.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int main() 8 | { 9 | char buff[1024]; 10 | read(0,buff,sizeof(buff)); 11 | int i=0; 12 | while(buff[i]!='\0') 13 | { 14 | if(buff[i]>='a' && buff[i]<='z') 15 | { 16 | buff[i]=toupper(buff[i]); 17 | } 18 | i++; 19 | } 20 | printf("%s",buff); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /INETD_Assignment_18/dynamic_inetd/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/dynamic_inetd/client -------------------------------------------------------------------------------- /INETD_Assignment_18/dynamic_inetd/config.txt: -------------------------------------------------------------------------------- 1 | NAME PROTOCOL TYPE PORT PATH 2 | capitalize tcp external 8000 ./capitalize 3 | encrypt udp internal 8002 ./encrypt 4 | math tcp external 8001 ./math -------------------------------------------------------------------------------- /INETD_Assignment_18/dynamic_inetd/math: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/dynamic_inetd/math -------------------------------------------------------------------------------- /INETD_Assignment_18/dynamic_inetd/notify.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | int main() 29 | { 30 | int fd = fopen("config.txt","r"); 31 | 32 | } -------------------------------------------------------------------------------- /INETD_Assignment_18/dynamic_inetd/supserver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/dynamic_inetd/supserver -------------------------------------------------------------------------------- /INETD_Assignment_18/inetd/capitalize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/inetd/capitalize -------------------------------------------------------------------------------- /INETD_Assignment_18/inetd/capitalize.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int main() 8 | { 9 | char buff[1024]; 10 | read(0,buff,sizeof(buff)); 11 | int i=0; 12 | while(buff[i]!='\0') 13 | { 14 | if(buff[i]>='a' && buff[i]<='z') 15 | { 16 | buff[i]=toupper(buff[i]); 17 | } 18 | i++; 19 | } 20 | printf("%s",buff); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /INETD_Assignment_18/inetd/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/inetd/client -------------------------------------------------------------------------------- /INETD_Assignment_18/inetd/config.txt: -------------------------------------------------------------------------------- 1 | NAME PROTOCOL TYPE PORT PATH 2 | capitalize tcp external 8000 ./capitalize 3 | encrypt udp internal 8002 ./encrypt 4 | math tcp external 8001 ./math -------------------------------------------------------------------------------- /INETD_Assignment_18/inetd/math: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/inetd/math -------------------------------------------------------------------------------- /INETD_Assignment_18/inetd/supserver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/INETD_Assignment_18/inetd/supserver -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/code.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main() 4 | { 5 | int x; 6 | cin>>x; 7 | cout< 2 | using namespace std; 3 | int main() 4 | { 5 | int x; 6 | cin>>x; 7 | cout< 2 | #include 3 | #include 4 | #include 5 | struct pollfd fds[3]; 6 | int timeout_msecs = 5000; 7 | int ret; 8 | 9 | int main(){ 10 | int fd[3]; 11 | char buf[128]; 12 | fd[0]=fileno(popen("./pt1","r")); 13 | fd[1]=fileno(popen("./pt2","r")); 14 | fd[2]=fileno(popen("./pt3","r")); 15 | int t=4; 16 | while(t--) 17 | { 18 | fds[0].fd=fd[0]; 19 | fds[1].fd=fd[1]; 20 | fds[2].fd=fd[2]; 21 | 22 | fds[0].events=POLLIN; 23 | fds[1].events=POLLIN; 24 | fds[2].events=POLLIN; 25 | 26 | ret=poll(fds,3,-1); 27 | 28 | if (ret<=0) 29 | { 30 | printf ("%d seconds elapsed.\n", 0); 31 | return 0; 32 | } 33 | for(int j=0;j<3;j++) 34 | { 35 | sleep(1); 36 | if(fds[j].revents & POLLIN) 37 | { 38 | int i=read(fds[j].fd,buf,5); 39 | write(1,buf,i); 40 | printf(" ----->from P%d\n",j+2); 41 | } 42 | } 43 | } 44 | return 0; 45 | } 46 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/poll_test_1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | using namespace std; 16 | 17 | int main(){ 18 | printf("AAAAAAATTTTTT\n"); 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/poll_test_2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | using namespace std; 16 | 17 | int main(){ 18 | printf("ABHISHEK SHUKLA\n"); 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/poll_test_3.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | using namespace std; 16 | 17 | int main(){ 18 | printf("BATAAAAAOOOOOOOO\n"); 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/pt1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/pt1 -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/pt2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/pt2 -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/pt3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/pt3 -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q2_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/q2_p1 -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q2_p1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int main(){ 9 | 10 | int fd; 11 | char *myfifo="xyz"; 12 | mkfifo(myfifo,0666); 13 | 14 | char buf1[100],buf2[100]; 15 | 16 | while(1) 17 | { 18 | fd=open(myfifo,O_WRONLY); 19 | 20 | fgets(buf1,100,stdin); 21 | 22 | write(fd,buf1,100); 23 | close(fd); 24 | 25 | fd=open(myfifo,O_RDONLY); 26 | 27 | read(fd,buf2,100); 28 | 29 | printf("User2: %s\n",buf2); 30 | close(fd); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q2_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/q2_p2 -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q2_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | char * myfifo="xyz"; 11 | int fd1; 12 | 13 | mkfifo(myfifo,0666); 14 | 15 | char str1[100], str2[100]; 16 | 17 | while(1) 18 | { 19 | fd1=open(myfifo,O_RDONLY); 20 | 21 | read(fd1,str1,100); 22 | printf("User1: %s\n",str1); 23 | 24 | close(fd1); 25 | 26 | fd1=open(myfifo,O_WRONLY); 27 | 28 | fgets(str2,100,stdin); 29 | 30 | write(fd1,str2,100); 31 | 32 | close(fd1); 33 | } 34 | return 0; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q3_client1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/q3_client1 -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q3_client2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/q3_client2 -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q3_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/q3_server -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q3_server.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | using namespace std; 12 | 13 | int main() 14 | { 15 | mkfifo("serve",0666); 16 | mkfifo("C1",0666); 17 | mkfifo("C2",0666); 18 | while(1) 19 | { 20 | int fd = open("serve",O_RDONLY); 21 | cout<<"Serve Fifo is opened\n"; 22 | char c,msg[2][1024]; 23 | int j=0,dollar_cnt=0; 24 | while(read(fd,&c,1)) 25 | { 26 | //printf("%c",c); 27 | if(c=='$') 28 | { 29 | msg[dollar_cnt][j++]='\0'; 30 | j=0; 31 | dollar_cnt++; 32 | } 33 | else 34 | { 35 | msg[dollar_cnt][j++]=c; 36 | } 37 | } 38 | cout<<"Message read from group by server: \n"; 39 | for(int i=0;i<2;i++) 40 | { 41 | int k=0; 42 | while(msg[i][k++]!='\0') 43 | { 44 | printf("%c",msg[i][k]); 45 | } 46 | printf("\n"); 47 | } 48 | 49 | int fd2 = open("C1",O_WRONLY); 50 | int fd3 = open("C2",O_WRONLY); 51 | 52 | write(fd3,msg[0],1024); 53 | write(fd2,msg[0],1024); 54 | 55 | write(fd3,msg[1],1024); 56 | write(fd2,msg[1],1024); 57 | 58 | close(fd2); 59 | close(fd3); 60 | close(fd); 61 | } 62 | return 0; 63 | } 64 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q4_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/q4_client -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/q4_server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/IO_Multiplexing: Assignment_4/q4_server -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/req_out.txt: -------------------------------------------------------------------------------- 1 | 4 2 | -------------------------------------------------------------------------------- /IO_Multiplexing: Assignment_4/returned_out.txt: -------------------------------------------------------------------------------- 1 | 4 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "cerrno": "c", 4 | "semaphore.h": "c", 5 | "string.h": "c", 6 | "stdlib.h": "c", 7 | "stdio.h": "c", 8 | "msg.h": "c" 9 | } 10 | } -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q1_basic_p1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | struct msg_buff 25 | { 26 | long msg_type; 27 | char msg_text[1024]; 28 | }; 29 | 30 | struct msg_buff message; 31 | 32 | int main() 33 | { 34 | key_t key=ftok("file1",65); 35 | 36 | int msgid=msgget(key,0666|IPC_CREAT); 37 | 38 | message.msg_type=1; 39 | 40 | printf("Enter message to be sent:\n"); 41 | fgets(message.msg_text,1024,stdin); 42 | 43 | msgsnd(msgid,&message,sizeof(message),0); 44 | 45 | return 0; 46 | } -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q1_basic_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | struct msg_buff 25 | { 26 | long msg_type; 27 | char msg_text[1024]; 28 | }; 29 | 30 | struct msg_buff message; 31 | 32 | int main() 33 | { 34 | key_t key=ftok("file1",65); 35 | 36 | int msgid=msgget(key,0666|IPC_CREAT); 37 | 38 | msgrcv(msgid,&message,sizeof(message),1,0); 39 | 40 | printf("Data received is: %s",message.msg_text); 41 | 42 | msgctl(msgid,IPC_RMID,NULL); 43 | } -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q1_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q1_p1 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q1_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q1_p2 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q2_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q2_p1 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q2_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q2_p2 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q2_p2p_p1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | struct msg_buff 25 | { 26 | long msg_type; 27 | char msg_text[1024]; 28 | }; 29 | 30 | struct msg_buff message; 31 | 32 | int main() 33 | { 34 | key_t key=ftok("file1",65); 35 | 36 | int msgid=msgget(key,0666|IPC_CREAT); 37 | 38 | while(1) 39 | { 40 | message.msg_type=1; 41 | 42 | printf("Me: "); 43 | fgets(message.msg_text,1024,stdin); 44 | 45 | msgsnd(msgid,&message,sizeof(message),0); 46 | 47 | msgrcv(msgid,&message,sizeof(message),2,0); 48 | printf("P2: %s",message.msg_text); 49 | } 50 | msgctl(msgid,IPC_RMID,NULL); 51 | return 0; 52 | } -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q2_p2p_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | struct msg_buff 25 | { 26 | long msg_type; 27 | char msg_text[1024]; 28 | }; 29 | 30 | struct msg_buff message; 31 | 32 | int main() 33 | { 34 | key_t key=ftok("file1",65); 35 | 36 | int msgid=msgget(key,0666|IPC_CREAT); 37 | 38 | while(1) 39 | { 40 | msgrcv(msgid,&message,sizeof(message),1,0); 41 | 42 | printf("P1: %s",message.msg_text); 43 | 44 | message.msg_type=2; 45 | 46 | printf("Me: "); 47 | fgets(message.msg_text,1024,stdin); 48 | 49 | msgsnd(msgid,&message,sizeof(message),0); 50 | } 51 | 52 | msgctl(msgid,IPC_RMID,NULL); 53 | return 0; 54 | } -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q3_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q3_p1 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q3_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q3_p2 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q4_series_transfer/p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q4_series_transfer/p1 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q4_series_transfer/p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q4_series_transfer/p2 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q4_series_transfer/p3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q4_series_transfer/p3 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q4_series_transfer/p4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q4_series_transfer/p4 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q5_chat_server/c1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q5_chat_server/c1 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q5_chat_server/c2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q5_chat_server/c2 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q5_chat_server/c3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q5_chat_server/c3 -------------------------------------------------------------------------------- /Message Queues: Assignment_8/q5_chat_server/s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Message Queues: Assignment_8/q5_chat_server/s -------------------------------------------------------------------------------- /Mid_exam/Q1/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "in.h": "c", 4 | "socket.h": "c", 5 | "stdio.h": "c" 6 | } 7 | } -------------------------------------------------------------------------------- /Mid_exam/Q1/aos: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/aos -------------------------------------------------------------------------------- /Mid_exam/Q1/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/client -------------------------------------------------------------------------------- /Mid_exam/Q1/op1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/op1.png -------------------------------------------------------------------------------- /Mid_exam/Q1/op2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/op2.png -------------------------------------------------------------------------------- /Mid_exam/Q1/question_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/question_image.png -------------------------------------------------------------------------------- /Mid_exam/Q1/s1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/s1 -------------------------------------------------------------------------------- /Mid_exam/Q1/s2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/s2 -------------------------------------------------------------------------------- /Mid_exam/Q1/s3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/s3 -------------------------------------------------------------------------------- /Mid_exam/Q1/s4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q1/s4 -------------------------------------------------------------------------------- /Mid_exam/Q2/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "shm.h": "c", 4 | "array": "c", 5 | "string": "c", 6 | "string_view": "c", 7 | "signal.h": "c" 8 | } 9 | } -------------------------------------------------------------------------------- /Mid_exam/Q2/at: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q2/at -------------------------------------------------------------------------------- /Mid_exam/Q2/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q2/client -------------------------------------------------------------------------------- /Mid_exam/Q2/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q2/image.png -------------------------------------------------------------------------------- /Mid_exam/Q2/r1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q2/r1 -------------------------------------------------------------------------------- /Mid_exam/Q2/r2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q2/r2 -------------------------------------------------------------------------------- /Mid_exam/Q2/r3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Mid_exam/Q2/r3 -------------------------------------------------------------------------------- /Minor_exam/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "msg.h": "c" 4 | } 5 | } -------------------------------------------------------------------------------- /Minor_exam/187203_q2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Minor_exam/187203_q2.zip -------------------------------------------------------------------------------- /Minor_exam/187203_q2/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Minor_exam/187203_q2/output.png -------------------------------------------------------------------------------- /Minor_exam/q2_c1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Minor_exam/q2_c1 -------------------------------------------------------------------------------- /Minor_exam/q2_c2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Minor_exam/q2_c2 -------------------------------------------------------------------------------- /Minor_exam/q2_c3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Minor_exam/q2_c3 -------------------------------------------------------------------------------- /Minor_exam/q3_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Minor_exam/q3_p1 -------------------------------------------------------------------------------- /Minor_exam/q3_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Minor_exam/q3_p2 -------------------------------------------------------------------------------- /Minor_exam/q3_p2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include //for fork system call 5 | #include 6 | #include //for exit system call 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | using namespace std; 24 | 25 | int main() 26 | { 27 | char buff[100]; 28 | fgets(buff,100,stdin); 29 | cout<<"P2: "< 2 | #include 3 | #include 4 | #include //for fork system call 5 | #include 6 | #include //for exit system call 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | using namespace std; 24 | 25 | int main() 26 | { 27 | char buff[100]; 28 | fgets(buff,100,stdin); 29 | cout<<"P3: "< 2 | #include 3 | #include 4 | #include //for fork system call 5 | #include 6 | #include //for exit system call 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | using namespace std; 24 | 25 | int main() 26 | { 27 | char buff[100]; 28 | fgets(buff,100,stdin); 29 | cout<<"P3: "< 2 | #include 3 | #include 4 | #include 5 | #define n 128 6 | using namespace std; 7 | 8 | int main() 9 | { 10 | int pp[2]; 11 | pipe(pp); 12 | char str_w[n],str_r[n]; 13 | fgets(str_w,n,stdin); 14 | write(pp[1],str_w,n); 15 | read(pp[0],str_r,n); 16 | cout< 2 | #include 3 | #include 4 | #include 5 | using namespace std; 6 | int main() 7 | { 8 | int a[2],b[2]; 9 | pipe(a); 10 | pipe(b); 11 | 12 | int c=fork(); 13 | if(c>0) 14 | { 15 | close(a[0]); 16 | close(b[1]); 17 | int i=1; 18 | while(i<5) 19 | { 20 | char buff1[128]; 21 | cout<<"write message to be sent by parent:\n"; 22 | fgets(buff1,128,stdin); 23 | write(a[1],buff1,128); 24 | char buff3[128]; 25 | cout<<"Read from pipe 2: "; 26 | read(b[0],buff3,128); 27 | cout< 2 | #include 3 | #include 4 | #include 5 | #include 6 | #define MSG_SZ 128 7 | 8 | using namespace std; 9 | 10 | void* read_thread_func(void* args) 11 | { 12 | int* fd_a=(int*)args; 13 | int fd=*fd_a; 14 | char buff[MSG_SZ]; 15 | read(fd,buff,MSG_SZ); 16 | cout<<"Returned value: "<>buff; 26 | write(fd,buff,MSG_SZ); 27 | } 28 | 29 | int main() 30 | { 31 | int a[2],b[2]; 32 | pipe(a); 33 | pipe(b); 34 | 35 | pthread_t read_th,write_th; 36 | 37 | int c=fork(); 38 | if(c>0) 39 | { 40 | close(a[0]); 41 | close(b[1]); 42 | while(1){ 43 | pthread_create(&write_th,NULL,&write_thread_func,(void*)&a[1]); 44 | sleep(10); 45 | pthread_create(&read_th,NULL,&read_thread_func,(void*)&b[0]); 46 | pthread_join(write_th,NULL); 47 | pthread_join(read_th,NULL); 48 | } 49 | } 50 | else 51 | { 52 | close(a[1]); 53 | close(b[0]); 54 | while(1){ 55 | sleep(5); 56 | pthread_create(&read_th,NULL,&read_thread_func,(void*)&a[0]); 57 | sleep(2); 58 | pthread_create(&write_th,NULL,&write_thread_func,(void*)&b[1]); 59 | 60 | pthread_join(read_th,NULL); 61 | pthread_join(write_th,NULL); 62 | } 63 | } 64 | return 0; 65 | } 66 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q4 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q4.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | int pp1[2],pp2[2]; 9 | pipe(pp1); 10 | pipe(pp2); 11 | 12 | int stdinsave=dup(STDIN_FILENO); 13 | int stdoutsave=dup(STDOUT_FILENO); 14 | //printf("%d %d\n",stdinsave,stdoutsave); 15 | 16 | dup2(pp1[0],0); 17 | dup2(pp2[1],1); 18 | 19 | int c=fork(); 20 | 21 | if(c>0) 22 | { 23 | dup2(stdinsave,STDIN_FILENO); 24 | dup2(stdoutsave,STDOUT_FILENO); 25 | 26 | close(pp1[0]); 27 | close(pp2[1]); 28 | 29 | char buf1[128],buf2[128]; 30 | 31 | printf("Writing to p2:"); 32 | fgets(buf1,128,stdin); 33 | write(pp1[1],buf1,128); 34 | 35 | read(pp2[0],buf2,128); 36 | printf("InP1: %s \n",buf2); 37 | } 38 | else 39 | { 40 | char *args[]={"./q4_p2",NULL}; 41 | execvp(args[0],args); 42 | } 43 | return 0; 44 | } 45 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q4_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q4_p2 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q4_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | char buf1[128],buf2[128]; 9 | //char* x1,*x2; 10 | int fd1=dup(STDIN_FILENO); 11 | int fd2=dup(STDOUT_FILENO); 12 | 13 | dup2(7,STDIN_FILENO); 14 | dup2(8,STDOUT_FILENO); 15 | 16 | //printf("\n And in file 2\n"); 17 | read(fd1,buf2,128); 18 | 19 | printf("Inp2: %s \n",buf2); 20 | printf("Writing to p1:"); 21 | fgets(buf1,128,stdin); 22 | 23 | write(fd2,buf1,128); 24 | 25 | close(fd1); 26 | close(fd2); 27 | return 0; 28 | } 29 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q5 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q5.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #define MSG_SZ 500 8 | 9 | using namespace std; 10 | 11 | void* read_func(void* args) 12 | { 13 | int* fd_a=(int*)args; 14 | int fd=*fd_a; 15 | char buff[MSG_SZ]; 16 | read(fd,buff,MSG_SZ); 17 | cout<<"Returned value by child to parent: "<0) 42 | { 43 | dup2(temp,STDIN_FILENO); 44 | dup2(temp2,STDOUT_FILENO); 45 | close(a[0]); 46 | close(b[1]); 47 | while(1) 48 | { 49 | pthread_create(&write_th,NULL,&write_func,(void*)&a[1]); 50 | pthread_create(&read_th,NULL,&read_func,(void*)&b[0]); 51 | pthread_join(write_th,NULL); 52 | pthread_join(read_th,NULL); 53 | } 54 | } 55 | else 56 | { 57 | close(a[1]); 58 | close(b[0]); 59 | execvp("./q5_p2",NULL); 60 | } 61 | return 0; 62 | } 63 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q5_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q5_p2 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q5_p2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #define MSG_SZ 500 8 | 9 | using namespace std; 10 | 11 | void* read_func(void* args) 12 | { 13 | int* fd_a=(int*)args; 14 | int fd=*fd_a; 15 | char buff[MSG_SZ]; 16 | read(fd,buff,MSG_SZ); 17 | cout<<"Returned value by parent to child: "< 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | printf("From P1: Hello World!!!\n"); 8 | FILE* fd=popen("./q6_p2","r"); 9 | char buf[1024]; 10 | read(fileno(fd),buf,1024); 11 | printf("From pipe: %s",buf); 12 | pclose(fd); 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q6_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q6_p2 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q6_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | write(1,"From P2: Hello World!!\n",1024); 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q71: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q71 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q71.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | int main() 5 | { 6 | printf("p1 "); 7 | FILE* fd=popen("./q72","r"); 8 | char buf[1024]; 9 | read(fileno(fd),buf,1024); 10 | printf("From pipe2: %s",buf); 11 | pclose(fd); 12 | return 0; 13 | } 14 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q72: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q72 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q72.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | int main() 5 | { 6 | fputs("p2 ",stdout); 7 | FILE* fd1=popen("./q73","r"); 8 | char buf[1024]; 9 | read(fileno(fd1),buf,1024); 10 | fputs("From pipe3: ",stdout); 11 | fputs(buf,stdout); 12 | pclose(fd1); 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q73: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q73 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q73.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | int main() 5 | { 6 | fputs("p3 ",stdout); 7 | FILE* fd2=popen("./q74","r"); 8 | char buf[1024]; 9 | read(fileno(fd2),buf,1024); 10 | fputs("From pipe4: ",stdout); 11 | fputs(buf,stdout); 12 | pclose(fd2); 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /Pipes: Assigment_3/q74: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Pipes: Assigment_3/q74 -------------------------------------------------------------------------------- /Pipes: Assigment_3/q74.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | int main() 5 | { 6 | fputs("p4 ",stdout); 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Header_printing/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "signal.h": "c", 4 | "string.h": "c" 5 | } 6 | } -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Header_printing/header_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/IP_Header_printing/header_print.png -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Header_printing/receiver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/IP_Header_printing/receiver -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Header_printing/sender: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/IP_Header_printing/sender -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Spoofing/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "un.h": "c", 4 | "ipc.h": "c", 5 | "stddef.h": "c", 6 | "tcp.h": "c" 7 | } 8 | } -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Spoofing/ip_spoof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/IP_Spoofing/ip_spoof.png -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Spoofing/receiver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/IP_Spoofing/receiver -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/IP_Spoofing/sender: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/IP_Spoofing/sender -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "ip.h": "c", 4 | "ipc.h": "c", 5 | "unistd.h": "c" 6 | } 7 | } -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/client -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/iss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/iss -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/question_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/question_image.png -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/service: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/service -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/tracer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/Swyamabhoo_server_with_tracer/tracer -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/packet_sniffing/sniff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/packet_sniffing/sniff -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/packet_sniffing/tcp_sender: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/packet_sniffing/tcp_sender -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/packet_sniffing/udp_sender: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/packet_sniffing/udp_sender -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/swayambhoo_server/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "socket.h": "c" 4 | } 5 | } -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/swayambhoo_server/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/swayambhoo_server/client -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/swayambhoo_server/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/swayambhoo_server/server -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/swayambhoo_server/sniff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/swayambhoo_server/sniff -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/swayambhoo_server/sniff1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/swayambhoo_server/sniff1.png -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/swayambhoo_server/sniff2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/swayambhoo_server/sniff2.png -------------------------------------------------------------------------------- /RAW_Sockets_Assignment_20/swayambhoo_server/sniff3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/RAW_Sockets_Assignment_20/swayambhoo_server/sniff3.png -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/file.txt: -------------------------------------------------------------------------------- 1 | lin1 2 | lin2 3 | lin3 4 | lin4 5 | lin5 6 | -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/mytext.txt: -------------------------------------------------------------------------------- 1 | line 1 2 | line 2 3 | line 3 4 | line 4 5 | line 5 6 | line 6 7 | line 7 8 | line 8 9 | line 9 10 | line 10 11 | -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_execv_fork:Assignment_2/q1 -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q2_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_execv_fork:Assignment_2/q2_p1 -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q2_p1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | const char* sem1= "s1"; 10 | const char* sem2 = "s2"; 11 | 12 | void p1(int fd){ 13 | 14 | sem_t *s1=sem_open(sem1,O_EXCL); 15 | sem_t *s2=sem_open(sem2,O_EXCL); 16 | //printf("yoooo"); 17 | 18 | char *buf= (char *) calloc(1, sizeof(char)); 19 | while(read(fd,buf,1)==1){ 20 | 21 | if(*buf=='\n'){ 22 | printf("->p1\n"); 23 | sem_post(s1); 24 | sem_wait(s2); 25 | 26 | } 27 | else if(*buf==' '){ 28 | printf(" "); 29 | } 30 | 31 | else{ 32 | printf("%s",buf); 33 | } 34 | 35 | } 36 | 37 | } 38 | 39 | int main() 40 | { 41 | sem_t *s1 = sem_open(sem1,O_CREAT|O_EXCL,0666,0); 42 | sem_t *s2 = sem_open(sem2,O_CREAT|O_EXCL,0666,0); 43 | int fd=open("file.txt",O_RDONLY); 44 | dup2(fd,0); 45 | pid_t c=fork(); 46 | if(c>0){ 47 | //wait(NULL); 48 | p1(fd); 49 | } 50 | else{ 51 | execv("./q2_p2",NULL); 52 | } 53 | sem_unlink(sem1); 54 | sem_unlink(sem2); 55 | return 0; 56 | } 57 | -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q2_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_execv_fork:Assignment_2/q2_p2 -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q2_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | const char* sem1= "s1"; 9 | const char* sem2 = "s2"; 10 | 11 | 12 | void func(){ 13 | 14 | //printf("hiii"); 15 | sem_t *s1=sem_open(sem1,0); 16 | sem_t *s2=sem_open(sem2,0); 17 | 18 | sem_wait(s1); 19 | 20 | char *buf= (char *) calloc(1, sizeof(char)); 21 | while(read(0,buf,1)==1){ 22 | 23 | if(*buf=='\n'){ 24 | printf("->p2\n"); 25 | sem_post(s2); 26 | sem_wait(s1); 27 | } 28 | else if(*buf==' '){ 29 | printf(" "); 30 | } 31 | 32 | else{ 33 | printf("%s",buf); 34 | } 35 | 36 | } 37 | /*char str; 38 | fgets(str,60,stdin); 39 | printf("%s->p2\n",str); 40 | sem_post(s2); 41 | sem_wait(s1);*/ 42 | 43 | sem_post(s2); 44 | } 45 | 46 | int main(){ 47 | 48 | //printf("ye ho ja"); 49 | 50 | func(); 51 | return 0; 52 | } 53 | -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q3_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_execv_fork:Assignment_2/q3_p1 -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q3_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_execv_fork:Assignment_2/q3_p2 -------------------------------------------------------------------------------- /Semaphores_execv_fork:Assignment_2/q3_p2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | using namespace std; 14 | 15 | const char* name1="s1"; 16 | const char* name2="s2"; // named semaphore 17 | 18 | void p2(){ 19 | sem_t* s1=sem_open(name1,O_EXCL); 20 | sem_t* s2=sem_open(name2,O_EXCL); 21 | 22 | key_t key1 = ftok("X",65); 23 | int shmid1 = shmget(key1,1024,0666|IPC_CREAT); 24 | char *str1 = (char*) shmat(shmid1,(void*)0,0); 25 | 26 | key_t key2 = ftok("Y",65); 27 | int shmid2 = shmget(key2,1024,0666|IPC_CREAT); 28 | char *str2 = (char*) shmat(shmid2,(void*)0,0); 29 | 30 | char * offset = "a"; 31 | int count = 5; 32 | sem_wait(s1); 33 | 34 | while(count--){ 35 | printf("%s p2 -> reading from X\n" , str2); 36 | 37 | strcpy(str1 , strcat(str2 , offset)); 38 | printf("%s writing in Y\n", str2 ); 39 | 40 | sem_post(s2); 41 | sem_wait(s1); 42 | } 43 | sem_post(s2); 44 | shmdt(str1); 45 | shmdt(str2); 46 | 47 | shmctl(shmid1,IPC_RMID,NULL); 48 | shmctl(shmid2,IPC_RMID,NULL); 49 | 50 | } 51 | 52 | 53 | int main(){ 54 | p2(); 55 | return 0; 56 | } 57 | -------------------------------------------------------------------------------- /Semaphores_fork: Assignment_1/q1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_fork: Assignment_1/q1 -------------------------------------------------------------------------------- /Semaphores_fork: Assignment_1/q1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | using namespace std; 5 | 6 | void sequentialProcessCreation(int count) 7 | { 8 | if(count==4) 9 | return; 10 | cout<<"New process created from P"< 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int main() 8 | { 9 | for(int i=0;i<2;i++) 10 | { 11 | int k1=getpid(); 12 | pid_t f_id=fork(); 13 | if(f_id==0) 14 | { 15 | k1=getpid(); 16 | printf("Child process with pid: %d created from Parent with pid: %d\n",k1,getppid()); 17 | sleep(1); 18 | printf("Child process with pid = %d exits now\n",k1); 19 | exit(0); 20 | } 21 | 22 | int status; 23 | waitpid(f_id,&status,0); 24 | if(WIFEXITED(status)) 25 | { 26 | int es=WEXITSTATUS(status); 27 | printf("Message from parent, id = %d :=> P%d has exited with exit status: %d\n",getpid(),i+2,es); 28 | } 29 | } 30 | return 0; 31 | } 32 | 33 | -------------------------------------------------------------------------------- /Semaphores_fork: Assignment_1/q3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_fork: Assignment_1/q3 -------------------------------------------------------------------------------- /Semaphores_fork: Assignment_1/q3.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | sem_t s1; 10 | sem_t s2; 11 | 12 | void* P1(void* arg) 13 | { 14 | int count=4; 15 | while(count--) 16 | { 17 | int c=4-count; 18 | printf("\nP1\n"); 19 | printf("P1: S%d\n",2*c-1); 20 | printf("P1: S%d\n",2*c); 21 | printf("\nExiting P1\n"); 22 | sem_post(&s2); 23 | sem_wait(&s1); 24 | } 25 | sem_post(&s2); 26 | } 27 | 28 | void* P2(void* arg) 29 | { 30 | int count=4; 31 | sem_wait(&s2); 32 | while(count--) 33 | { 34 | int c=4-count; 35 | printf("\nP2\n"); 36 | printf("P2: S%d\n",2*c-1); 37 | printf("P2: S%d\n",2*c); 38 | printf("\nExiting P2\n"); 39 | sem_post(&s1); 40 | sem_wait(&s2); 41 | } 42 | } 43 | 44 | int main() 45 | { 46 | sem_init(&s1,0,0); 47 | sem_init(&s2,0,0); 48 | pthread_t thread1,thread2; 49 | 50 | pthread_create(&thread1,NULL,P1,NULL); 51 | pthread_create(&thread2,NULL,P2,NULL); 52 | 53 | pthread_join(thread1,NULL); 54 | pthread_join(thread2,NULL); 55 | 56 | sem_destroy(&s1); 57 | sem_destroy(&s2); 58 | return 0; 59 | } 60 | -------------------------------------------------------------------------------- /Semaphores_fork: Assignment_1/q4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Semaphores_fork: Assignment_1/q4 -------------------------------------------------------------------------------- /Signals: Assignment_5/raise: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals: Assignment_5/raise -------------------------------------------------------------------------------- /Signals: Assignment_5/raise.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | void handler(int signal) 23 | { 24 | printf("\nI raised myself!!\n"); 25 | } 26 | int main() 27 | { 28 | signal(SIGUSR1,handler); 29 | //sleep(1); 30 | printf("Sending signal\n"); 31 | raise(SIGUSR1); 32 | } 33 | -------------------------------------------------------------------------------- /Signals: Assignment_5/sig_shm_P2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals: Assignment_5/sig_shm_P2 -------------------------------------------------------------------------------- /Signals: Assignment_5/sig_shm_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals: Assignment_5/sig_shm_p1 -------------------------------------------------------------------------------- /Signals: Assignment_5/sig_shm_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals: Assignment_5/sig_shm_p2 -------------------------------------------------------------------------------- /Signals: Assignment_5/sigintdefault: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals: Assignment_5/sigintdefault -------------------------------------------------------------------------------- /Signals: Assignment_5/sigintdefault.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | using namespace std; 23 | 24 | #define SIGHUP 1 /* Hangup the process */ 25 | #define SIGINT 2 /* Interrupt the process */ 26 | #define SIGQUIT 3 /* Quit the process */ 27 | #define SIGILL 4 /* Illegal instruction. */ 28 | #define SIGTRAP 5 /* Trace trap. */ 29 | #define SIGABRT 6 /* Abort. */ 30 | 31 | void handle_sigint(int sig) 32 | { 33 | printf("I will not terminate!!\n"); 34 | } 35 | 36 | int main(){ 37 | signal(SIGINT, handle_sigint); 38 | while(1) 39 | { 40 | printf("Hello guyz\n"); 41 | sleep(1); 42 | } 43 | return 0; 44 | } 45 | -------------------------------------------------------------------------------- /Signals: Assignment_5/sigintdefault_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals: Assignment_5/sigintdefault_2 -------------------------------------------------------------------------------- /Signals: Assignment_5/user_signals: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals: Assignment_5/user_signals -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Group_id/group_id: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/Group_id/group_id -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Group_id/group_id_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/Group_id/group_id_p2 -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Group_id/group_id_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | void handler(int sig) 24 | { 25 | write(1,"This is handler of P2\n",sizeof "This is handler of P2\n"-1); 26 | } 27 | 28 | int main() 29 | { 30 | signal(SIGUSR1,handler); 31 | sleep(5); 32 | } 33 | -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Group_id/group_id_p3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/Group_id/group_id_p3 -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Group_id/group_id_p3.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | void handler(int sig) 24 | { 25 | write(1,"This is handler of P3\n",sizeof "This is handler of P3\n"-1); 26 | } 27 | 28 | int main() 29 | { 30 | signal(SIGUSR1,handler); 31 | sleep(5); 32 | } 33 | -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Group_id/group_id_p4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/Group_id/group_id_p4 -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Group_id/group_id_p4.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | void handler(int sig) 24 | { 25 | write(1,"This is handler of P4\n",sizeof "This is handler of P4\n"-1); 26 | } 27 | 28 | int main() 29 | { 30 | signal(SIGUSR1,handler); 31 | sleep(5); 32 | } 33 | -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Thread signalling/thread_signals: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/Thread signalling/thread_signals -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Thread_signalling_2/thread_signal_p1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/Thread_signalling_2/thread_signal_p1 -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Thread_signalling_2/thread_signal_p1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #define FILLED 0 24 | #define Ready 1 25 | #define NotReady -1 26 | 27 | struct memory 28 | { 29 | int pid1, pid2; 30 | }; 31 | 32 | struct memory* shmptr; 33 | 34 | void* func(void* args) 35 | { 36 | printf("P1_thread signalling P2_thread\n"); 37 | sleep(7); 38 | kill(shmptr->pid2,SIGUSR1); 39 | } 40 | 41 | int main() 42 | { 43 | int pid=getpid(); 44 | int shmid; 45 | key_t key = ftok("X",65); 46 | shmid=shmget(key,sizeof(struct memory),IPC_CREAT|0666); //Creation 47 | shmptr=(struct memory*)shmat(shmid,NULL,0); //Attachment 48 | shmptr->pid1=pid; 49 | 50 | pthread_t t1; 51 | pthread_create(&t1,NULL,func,NULL); 52 | //wait(NULL); 53 | pthread_join(t1,NULL); 54 | return 0; 55 | } 56 | -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/Thread_signalling_2/thread_signal_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/Thread_signalling_2/thread_signal_p2 -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/sigaction_and_siginfo/know_process: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/sigaction_and_siginfo/know_process -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/sigaction_and_siginfo/know_process.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | int main(){ 23 | pid_t c = fork(); 24 | if(c == 0){ 25 | char *args[]={"./know_process_p2",NULL}; 26 | execvp(args[0],args); 27 | } 28 | else{ 29 | sleep(3); 30 | kill( c , SIGUSR1); 31 | } 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/sigaction_and_siginfo/know_process_p2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Signals_detail: Assignment_6/sigaction_and_siginfo/know_process_p2 -------------------------------------------------------------------------------- /Signals_detail: Assignment_6/sigaction_and_siginfo/know_process_p2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include //for fork system call 3 | #include 4 | #include //for exit system call 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | struct sigaction act; 23 | 24 | void handler(int sig, siginfo_t *siginfo, void *context) 25 | { 26 | printf("Signal received by Process with PID: %ld, UID: %ld\n",(long) siginfo->si_pid, (long) siginfo->si_uid); 27 | } 28 | 29 | int main() 30 | { 31 | int pid = getpid(); 32 | printf("Process P2 with PID: %d started!\n",pid); 33 | act.sa_sigaction = &handler; 34 | act.sa_flags = SA_SIGINFO; 35 | 36 | int k = sigaction(SIGUSR1 , &act , NULL); 37 | sleep(1); 38 | if(k < 0) 39 | { 40 | printf("Error in SIGUSR1\n"); 41 | return 1; 42 | } 43 | else 44 | { 45 | printf("Signal received.\n"); 46 | } 47 | //sleep(5); 48 | while(1); 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /UDP_Assignment_15/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "types.h": "c", 4 | "string.h": "c" 5 | } 6 | } -------------------------------------------------------------------------------- /UDP_Assignment_15/Basic/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/Basic/client -------------------------------------------------------------------------------- /UDP_Assignment_15/Basic/client.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #define PORT 8080 11 | #define MAXLINE 1024 12 | 13 | // Driver code 14 | int main() 15 | { 16 | int sfd; 17 | char buffer[MAXLINE]; 18 | char *hello = "Hello from client"; 19 | struct sockaddr_in servaddr; 20 | 21 | // Creating socket file descriptor 22 | if ( (sfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) { 23 | perror("socket creation failed"); 24 | exit(EXIT_FAILURE); 25 | } 26 | 27 | memset(&servaddr, 0, sizeof(servaddr)); 28 | 29 | // Filling server information 30 | servaddr.sin_family = AF_INET; 31 | servaddr.sin_port = htons(PORT); 32 | servaddr.sin_addr.s_addr = INADDR_ANY; 33 | 34 | int n, len; 35 | 36 | sendto(sfd, (const char *)hello, strlen(hello), 37 | MSG_CONFIRM, (const struct sockaddr *) &servaddr, 38 | sizeof(servaddr)); 39 | printf("Hello message sent.\n"); 40 | 41 | n = recvfrom(sfd, (char *)buffer, MAXLINE, 42 | MSG_WAITALL, (struct sockaddr *) &servaddr, 43 | &len); 44 | buffer[n] = '\0'; 45 | printf("Server : %s\n", buffer); 46 | 47 | close(sfd); 48 | return 0; 49 | } -------------------------------------------------------------------------------- /UDP_Assignment_15/Basic/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/Basic/server -------------------------------------------------------------------------------- /UDP_Assignment_15/client-server-chat/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/client-server-chat/client -------------------------------------------------------------------------------- /UDP_Assignment_15/client-server-chat/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/client-server-chat/server -------------------------------------------------------------------------------- /UDP_Assignment_15/tcp-udp-select/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/tcp-udp-select/server -------------------------------------------------------------------------------- /UDP_Assignment_15/tcp-udp-select/tcp_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/tcp-udp-select/tcp_client -------------------------------------------------------------------------------- /UDP_Assignment_15/tcp-udp-select/tcp_client.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define PORT 5000 10 | #define MAXLINE 1024 11 | int main() 12 | { 13 | int sockfd; 14 | char buffer[MAXLINE]; 15 | char* message = "Hello Server"; 16 | struct sockaddr_in servaddr; 17 | 18 | int n, len; 19 | // Creating socket file descriptor 20 | if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { 21 | printf("socket creation failed"); 22 | exit(0); 23 | } 24 | 25 | memset(&servaddr, 0, sizeof(servaddr)); 26 | 27 | // Filling server information 28 | servaddr.sin_family = AF_INET; 29 | servaddr.sin_port = htons(PORT); 30 | servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); 31 | 32 | if (connect(sockfd, (struct sockaddr*)&servaddr, 33 | sizeof(servaddr)) < 0) { 34 | printf("\n Error : Connect Failed \n"); 35 | } 36 | 37 | memset(buffer, 0, sizeof(buffer)); 38 | strcpy(buffer, "Hello Server"); 39 | write(sockfd, buffer, sizeof(buffer)); 40 | printf("Message from server: "); 41 | read(sockfd, buffer, sizeof(buffer)); 42 | puts(buffer); 43 | close(sockfd); 44 | 45 | return 0; 46 | } -------------------------------------------------------------------------------- /UDP_Assignment_15/tcp-udp-select/udp_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/tcp-udp-select/udp_client -------------------------------------------------------------------------------- /UDP_Assignment_15/tcp-udp-select/udp_client.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define PORT 5000 10 | #define MAXLINE 1024 11 | int main() 12 | { 13 | int sockfd; 14 | char buffer[MAXLINE]; 15 | char* message = "Hello Server"; 16 | struct sockaddr_in servaddr; 17 | 18 | int n, len; 19 | // Creating socket file descriptor 20 | if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { 21 | printf("socket creation failed"); 22 | exit(0); 23 | } 24 | 25 | memset(&servaddr, 0, sizeof(servaddr)); 26 | 27 | // Filling server information 28 | servaddr.sin_family = AF_INET; 29 | servaddr.sin_port = htons(PORT); 30 | servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); 31 | // send hello message to server 32 | sendto(sockfd, (const char*)message, strlen(message), 33 | 0, (const struct sockaddr*)&servaddr, 34 | sizeof(servaddr)); 35 | 36 | // receive server's response 37 | printf("Message from server: "); 38 | n = recvfrom(sockfd, (char*)buffer, MAXLINE, 39 | 0, (struct sockaddr*)&servaddr, 40 | &len); 41 | puts(buffer); 42 | close(sockfd); 43 | return 0; 44 | } -------------------------------------------------------------------------------- /UDP_Assignment_15/tcpn-udp1-select/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/tcpn-udp1-select/server -------------------------------------------------------------------------------- /UDP_Assignment_15/tcpn-udp1-select/tcp_client1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/tcpn-udp1-select/tcp_client1 -------------------------------------------------------------------------------- /UDP_Assignment_15/tcpn-udp1-select/tcp_client1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define PORT 5000 10 | 11 | int main() 12 | { 13 | int sfd; 14 | char buffer[1024]; 15 | struct sockaddr_in servaddr; 16 | 17 | int n, len; 18 | // Creating socket file descriptor 19 | if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { 20 | printf("socket creation failed"); 21 | exit(0); 22 | } 23 | 24 | memset(&servaddr, 0, sizeof(servaddr)); 25 | 26 | // Filling server information 27 | servaddr.sin_family = AF_INET; 28 | servaddr.sin_port = htons(PORT); 29 | servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); 30 | 31 | if (connect(sfd, (struct sockaddr*)&servaddr, 32 | sizeof(servaddr)) < 0) { 33 | printf("\n Error : Connect Failed \n"); 34 | } 35 | 36 | memset(buffer, 0, sizeof(buffer)); 37 | fgets(buffer,sizeof(buffer),stdin); 38 | //strcpy(buffer, "Hello Server"); 39 | write(sfd, buffer, sizeof(buffer)); 40 | printf("Message from server: "); 41 | read(sfd, buffer, sizeof(buffer)); 42 | printf("%s\n",buffer); 43 | //puts(buffer); 44 | close(sfd); 45 | } -------------------------------------------------------------------------------- /UDP_Assignment_15/tcpn-udp1-select/tcp_client2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/tcpn-udp1-select/tcp_client2 -------------------------------------------------------------------------------- /UDP_Assignment_15/tcpn-udp1-select/tcp_client2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define PORT 6000 10 | 11 | int main() 12 | { 13 | int sfd; 14 | char buffer[1024]; 15 | struct sockaddr_in servaddr; 16 | 17 | int n, len; 18 | // Creating socket file descriptor 19 | if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { 20 | printf("socket creation failed"); 21 | exit(0); 22 | } 23 | 24 | memset(&servaddr, 0, sizeof(servaddr)); 25 | 26 | // Filling server information 27 | servaddr.sin_family = AF_INET; 28 | servaddr.sin_port = htons(PORT); 29 | servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); 30 | 31 | if (connect(sfd, (struct sockaddr*)&servaddr, 32 | sizeof(servaddr)) < 0) { 33 | printf("\n Error : Connect Failed \n"); 34 | } 35 | 36 | memset(buffer, 0, sizeof(buffer)); 37 | fgets(buffer,sizeof(buffer),stdin); 38 | //strcpy(buffer, "Hello Server"); 39 | write(sfd, buffer, sizeof(buffer)); 40 | printf("Message from server: "); 41 | read(sfd, buffer, sizeof(buffer)); 42 | printf("%s\n",buffer); 43 | //puts(buffer); 44 | close(sfd); 45 | } -------------------------------------------------------------------------------- /UDP_Assignment_15/tcpn-udp1-select/udp_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/UDP_Assignment_15/tcpn-udp1-select/udp_client -------------------------------------------------------------------------------- /Unix_Domain_Sockets_Assignment_16/file.txt: -------------------------------------------------------------------------------- 1 | line 1 2 | line 2 3 | line 3 4 | line 4 5 | line 5 6 | line 6 7 | line 7 8 | line 8 9 | line 9 10 | line 10 -------------------------------------------------------------------------------- /Unix_Domain_Sockets_Assignment_16/receiver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Unix_Domain_Sockets_Assignment_16/receiver -------------------------------------------------------------------------------- /Unix_Domain_Sockets_Assignment_16/sender: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/Unix_Domain_Sockets_Assignment_16/sender -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "ostream": "cpp" 4 | } 5 | } -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/Output.mkv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/Output.mkv -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/a1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/a1 -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/a2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/a2 -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/a3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/a3 -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/b1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/b1 -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/b2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/b2 -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/b3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/b3 -------------------------------------------------------------------------------- /chat_server_group:Assignment_10/s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/chat_server_group:Assignment_10/s -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "in.h": "c", 4 | "stdlib.h": "c", 5 | "stdio.h": "c", 6 | "inet.h": "c", 7 | "stddef.h": "c", 8 | "stat.h": "c" 9 | } 10 | } -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/NITW_News/document: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/fd_pass_NITW_News_Assignment_17/NITW_News/document -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/NITW_News/editor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/fd_pass_NITW_News_Assignment_17/NITW_News/editor -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/NITW_News/news_reader1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/NITW_News/news_reader2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | using namespace std; 14 | 15 | #define MAX 100 16 | 17 | int main() 18 | { 19 | 20 | return 0; 21 | } -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/NITW_News/reporter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/fd_pass_NITW_News_Assignment_17/NITW_News/reporter -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/NITW_News/reporter.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #define BUFFSIZE 1024 17 | 18 | int main(int argc, char* argv[]) 19 | { 20 | int i=10; 21 | while(i--) 22 | { 23 | //printf("Reporter started...\n"); 24 | char buff[BUFFSIZE]; 25 | //printf("Enter the ground breaking report!!\n"); 26 | fgets(buff,BUFFSIZE,stdin); 27 | write(1,&buff,sizeof(buff)); 28 | } 29 | fflush(stdout); 30 | return 0; 31 | } -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/NITW_News/screen.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | #define MAX 100 15 | #define O_RDONLY 00 16 | #define O_WRONLY 01 17 | #define O_RDWR 02 18 | 19 | int main() 20 | { 21 | cout<<"Screen\n"; 22 | mkfifo("screenfifo",0666); 23 | //Messages will be put in the fifo by the news reader 24 | while(1) 25 | { 26 | int rfd = open("screenfifo",O_RDONLY); 27 | char c,msg[MAX]; 28 | //Accessing the message from fifo and printing it 29 | int j=0; 30 | while(read(rfd,&c,1)) 31 | msg[j++]=c; 32 | msg[j]='\0'; 33 | cout< 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define PORT 5000 10 | 11 | int main() 12 | { 13 | int sfd; 14 | char buffer[1024]; 15 | struct sockaddr_in servaddr; 16 | 17 | int n, len; 18 | // Creating socket file descriptor 19 | if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { 20 | printf("socket creation failed"); 21 | exit(0); 22 | } 23 | 24 | memset(&servaddr, 0, sizeof(servaddr)); 25 | 26 | // Filling server information 27 | servaddr.sin_family = AF_INET; 28 | servaddr.sin_port = htons(PORT); 29 | servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); 30 | 31 | if (connect(sfd, (struct sockaddr*)&servaddr, 32 | sizeof(servaddr)) < 0) { 33 | printf("\n Error : Connect Failed \n"); 34 | } 35 | 36 | memset(buffer, 0, sizeof(buffer)); 37 | fgets(buffer,sizeof(buffer),stdin); 38 | //strcpy(buffer, "Hello Server"); 39 | write(sfd, buffer, sizeof(buffer)); 40 | printf("Message from server: "); 41 | read(sfd, buffer, sizeof(buffer)); 42 | printf("%s\n",buffer); 43 | //puts(buffer); 44 | close(sfd); 45 | } -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/fd_pass/tcp_client2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/fd_pass_NITW_News_Assignment_17/fd_pass/tcp_client2 -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/fd_pass/tcp_client2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define PORT 6000 10 | 11 | int main() 12 | { 13 | int sfd; 14 | char buffer[1024]; 15 | struct sockaddr_in servaddr; 16 | 17 | int n, len; 18 | // Creating socket file descriptor 19 | if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { 20 | printf("socket creation failed"); 21 | exit(0); 22 | } 23 | 24 | memset(&servaddr, 0, sizeof(servaddr)); 25 | 26 | // Filling server information 27 | servaddr.sin_family = AF_INET; 28 | servaddr.sin_port = htons(PORT); 29 | servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); 30 | 31 | if (connect(sfd, (struct sockaddr*)&servaddr, 32 | sizeof(servaddr)) < 0) { 33 | printf("\n Error : Connect Failed \n"); 34 | } 35 | 36 | memset(buffer, 0, sizeof(buffer)); 37 | fgets(buffer,sizeof(buffer),stdin); 38 | //strcpy(buffer, "Hello Server"); 39 | write(sfd, buffer, sizeof(buffer)); 40 | printf("Message from server: "); 41 | read(sfd, buffer, sizeof(buffer)); 42 | printf("%s\n",buffer); 43 | //puts(buffer); 44 | close(sfd); 45 | } -------------------------------------------------------------------------------- /fd_pass_NITW_News_Assignment_17/fd_pass/udp_client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/fd_pass_NITW_News_Assignment_17/fd_pass/udp_client -------------------------------------------------------------------------------- /m-n-server-client-NITW-Passport_Assignment_21/m-n-serv_cli/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "select.h": "c", 4 | "unistd.h": "c", 5 | "string.h": "c", 6 | "ip.h": "c" 7 | } 8 | } -------------------------------------------------------------------------------- /m-n-server-client-NITW-Passport_Assignment_21/m-n-serv_cli/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/m-n-server-client-NITW-Passport_Assignment_21/m-n-serv_cli/client -------------------------------------------------------------------------------- /m-n-server-client-NITW-Passport_Assignment_21/m-n-serv_cli/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/m-n-server-client-NITW-Passport_Assignment_21/m-n-serv_cli/image.png -------------------------------------------------------------------------------- /m-n-server-client-NITW-Passport_Assignment_21/m-n-serv_cli/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/m-n-server-client-NITW-Passport_Assignment_21/m-n-serv_cli/server -------------------------------------------------------------------------------- /readv() & writev(): Assignment_9/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "cctype": "cpp", 4 | "cmath": "cpp", 5 | "cstddef": "cpp", 6 | "cstdlib": "cpp", 7 | "ctime": "cpp", 8 | "cwchar": "cpp", 9 | "random": "cpp", 10 | "ratio": "cpp", 11 | "iostream": "cpp" 12 | } 13 | } -------------------------------------------------------------------------------- /readv() & writev(): Assignment_9/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/readv() & writev(): Assignment_9/client -------------------------------------------------------------------------------- /readv() & writev(): Assignment_9/client.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | int main() 10 | { 11 | struct iovec iov[3]; 12 | ssize_t nr,nr2; 13 | int fd, i; 14 | 15 | char *buf[]= 16 | { 17 | "This is line 1: in buffer 1.\n", 18 | "This is line 2: in buffer 2.\n", 19 | "This is line 3: in buffer 3.\n" 20 | }; 21 | mkfifo("C1",0666); 22 | 23 | fd = open ("C1", O_WRONLY); 24 | 25 | for (i=0;i<3;i++) 26 | { 27 | iov[i].iov_base=buf[i]; 28 | iov[i].iov_len=strlen(buf[i])+1; 29 | } 30 | 31 | //Writing to server 32 | nr=writev(fd,iov,3); 33 | printf("wrote %ld bytes\n",nr); 34 | close(fd); 35 | sleep(2); 36 | 37 | //Receiving the changed text from server 38 | char buff[3][30]; 39 | int fdr=open("Server", O_RDONLY); 40 | 41 | for(int i=0;i<3;i++) 42 | { 43 | iov[i].iov_base=buff[i]; 44 | iov[i].iov_len=sizeof(buff[i]); 45 | } 46 | nr2=readv(fdr,iov,3); 47 | for(i = 0; i < 3; i++) 48 | printf ("%s\n",(char *)iov[i].iov_base); 49 | 50 | 51 | close(fdr); 52 | return 0; 53 | } -------------------------------------------------------------------------------- /readv() & writev(): Assignment_9/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/readv() & writev(): Assignment_9/server -------------------------------------------------------------------------------- /readv() & writev(): Assignment_9/server.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | int main() 10 | { 11 | char buff[3][30]; 12 | struct iovec iov[3]; 13 | ssize_t nr,nr2; 14 | int fd,i; 15 | 16 | fd=open("C1", O_RDONLY); 17 | mkfifo("Server",0666); 18 | 19 | for(int i=0;i<3;i++) 20 | { 21 | iov[i].iov_base=buff[i]; 22 | iov[i].iov_len=sizeof(buff[i]); 23 | } 24 | //Reading from client 25 | nr=readv(fd,iov,3); 26 | 27 | for(i = 0; i < 3; i++) 28 | printf ("%s\n",(char *)iov[i].iov_base); 29 | 30 | close(fd); 31 | 32 | //Changing the text and writing back to client 33 | char buff2[3][30]; 34 | for(int i=0;i<3;i++) 35 | { 36 | strcpy(buff2[i],(char*)iov[i].iov_base); 37 | buff2[i][0]='W'; 38 | iov[i].iov_base=buff2[i]; 39 | //printf("%s\n",(char*)iov[i].iov_base); 40 | iov[i].iov_len=sizeof(buff2[i]); 41 | } 42 | 43 | int fdw=open("Server",O_WRONLY); 44 | 45 | nr2=writev(fdw,iov,3); 46 | printf("wrote %ld bytes\n",nr2); 47 | 48 | 49 | close(fdw); 50 | return 0; 51 | } -------------------------------------------------------------------------------- /select_Assignment_14/Client-server/client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/select_Assignment_14/Client-server/client -------------------------------------------------------------------------------- /select_Assignment_14/Client-server/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aks2507/Computer-Networks-Assignments/1655c37fd28226564c3e9f92363d48378756e02e/select_Assignment_14/Client-server/server --------------------------------------------------------------------------------